【发布时间】:2011-04-01 09:18:01
【问题描述】:
为了计算跨度的天数,我不得不深入地减去两个日期,我的心在流血:
GregorianCalendar c1 = new GregorianCalendar();
GregorianCalendar c2 = new GregorianCalendar();
c1.set(2000, 1, 1);
c2.set(2010,1, 1);
long span = c2.getTimeInMillis() - c1.getTimeInMillis();
GregorianCalendar c3 = new GregorianCalendar();
c3.setTimeInMillis(span);
long numberOfMSInADay = 1000*60*60*24;
System.out.println(c3.getTimeInMillis() / numberOfMSInADay); //3653
它只是 .NET 中的两行代码,或者您命名的任何现代语言。
这是java的残暴吗?还是有什么我应该知道的隐藏方法?
不使用 GregorianCalendar,可以在 util 中使用 Date 类吗?如果是这样,我应该注意像 1970 年这样的微妙事物吗?
谢谢
【问题讨论】:
-
你为什么用c3? Afaik,您至少可以省略 c3 的两行;)