作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,对于一项作业,我们必须编写一个程序,该程序需要两次军事时间,并显示它们之间的小时和分钟差异,假设第一次是两次时间中较早的一次。我们不允许使用 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/
我正在使用 WordPress 和 jQuery Timepicker。 Wordpress 给出时区偏移量(以小时为单位):例如 +2 或 -3.5 jQuery Timepicker 在军事时间中
我是一名优秀的程序员,十分优秀!