【发布时间】:2013-12-08 13:19:44
【问题描述】:
我想要一个计算两个日期之间天数的 Java 程序。
- 输入第一个日期(德语表示法;带空格:“dd mm yyyy”)
- 输入第二个日期。
- 程序应计算两个日期之间的天数。
如何包含闰年和夏令时?
我的代码:
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class NewDateDifference {
public static void main(String[] args) {
System.out.print("Insert first date: ");
Scanner s = new Scanner(System.in);
String[] eingabe1 = new String[3];
while (s.hasNext()) {
int i = 0;
insert1[i] = s.next();
if (!s.hasNext()) {
s.close();
break;
}
i++;
}
System.out.print("Insert second date: ");
Scanner t = new Scanner(System.in);
String[] insert2 = new String[3];
while (t.hasNext()) {
int i = 0;
insert2[i] = t.next();
if (!t.hasNext()) {
t.close();
break;
}
i++;
}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert1[0]));
cal.set(Calendar.MONTH, Integer.parseInt(insert1[1]));
cal.set(Calendar.YEAR, Integer.parseInt(insert1[2]));
Date firstDate = cal.getTime();
cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert2[0]));
cal.set(Calendar.MONTH, Integer.parseInt(insert2[1]));
cal.set(Calendar.YEAR, Integer.parseInt(insert2[2]));
Date secondDate = cal.getTime();
long diff = secondDate.getTime() - firstDate.getTime();
System.out.println ("Days: " + diff / 1000 / 60 / 60 / 24);
}
}
【问题讨论】:
-
什么不起作用?它崩溃了吗?是不是给你错误的数字?
-
数组的声明在哪里:insert1?
-
insert1 = eingabe1 德语 :)
-
@peter.petrov 啊,我明白了!
-
我认为他对
mm和MM有问题:P
标签: java date-arithmetic