gpt4 book ai didi

java - java 军事时间 时差

转载 作者:行者123 更新时间:2023-12-01 07:07:22 28 4
gpt4 key购买 nike

因此,对于一项作业,我们必须编写一个程序,该程序需要两次军事时间,并显示它们之间的小时和分钟差异,假设第一次是两次时间中较早的一次。我们不允许使用 if 语句,因为它在技术上尚未被学习。这是运行时的示例。我将在提示时将手动输入的内容放在引号中。

java MilitaryTime

Please enter first time: "0900"

Please enter second time: "1730"

8 hours 30 minutes (this is the final answer)

我可以使用以下代码轻松完成这部分:

class MilitaryTime  {

public static void main(String [] args) {

Scanner in = new Scanner(System.in);

System.out.println("Please enter the first time: ");

int FirstTime = in.nextInt();

System.out.println("Please enter the second time: ");

int SecondTime = in.nextInt();

int FirstHour = FirstTime / 100;

int FirstMinute = FirstTime % 100;

int SecondHour = SecondTime / 100;

int SecondMinute = SecondTime % 100;

System.out.println( ( SecondHour - FirstHour ) + " hours " + ( SecondMinute

- FirstMinute ) + " minutes " );
}
}

现在我的问题是有些东西没有分配(或者我不会在这里!)书里这个问题的另一部分说要采用我们刚刚编写的程序并处理第一次的情况比第二个晚。这真的让我很好奇如何做到这一点,也让我很困惑。同样,我们不允许使用 if 语句,否则这很容易,我们基本上拥有所有可以使用的数学函数。

例如,第一次现在是 1730,第二次是 0900,所以现在返回 15 小时 30 分钟。

最佳答案

我想建议使用org.joda.time.DateTime 。有很多日期和时间函数。

示例:

SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy hh:mm");
Date startDate = format.parse("10-05-2013 09:00");
Date endDate = format.parse("11-05-2013 17:30");

DateTime jdStartDate = new DateTime(startDate);
DateTime jdEndDate = new DateTime(endDate);

int years = Years.yearsBetween(jdStartDate, jdEndDate).getYears();
int days = Days.daysBetween(jdStartDate, jdEndDate).getDays();
int months = Months.monthsBetween(jdStartDate, jdEndDate).getMonths();
int hours = Hours.hoursBetween(jdStartDate, jdEndDate).getHours();
int minutes = Minutes.minutesBetween(jdStartDate, jdEndDate).getMinutes();

System.out.println(hours + " hours " + minutes + " minutes");

您期望的程序如下:

SimpleDateFormat format = new SimpleDateFormat("hhmm");
Dates tartDate = format.parse("0900");
Date endDate = format.parse("1730");
DateTime jdStartDate = new DateTime(startDate);
DateTime jdEndDate = new DateTime(endDate);
int hours = Hours.hoursBetween(jdStartDate, jdEndDate).getHours();
int minutes = Minutes.minutesBetween(jdStartDate, jdEndDate).getMinutes();
minutes = minutes % 60;

System.out.println(hours + " hours " + minutes + " minutes");

输出:

8 hours 30 minutes

关于java - java 军事时间 时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21153746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com