请各位大哥大姐帮小弟计算一下天数! 本帖最后由 shujia_zaibeijing 于 2012-10-06 22:01:55 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static int getBetweenDays(String t1, String t2) throws ParseException { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); int betweenDays = 0; Date d1 = format.parse(t1); Date d2 = format.parse(t2); Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(d1); c2.setTime(d2); // 保证第二个时间一定大于第一个时间 if (c1.after(c2)) { c1 = c2; c2.setTime(d1); } int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); betweenDays = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR); for (int i = 0; i < betweenYears; i++) { c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1)); betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR); } return betweenDays; }} 楼上的方法可以,不过,betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);要改成 betweenDays += c1.getActualMaximum(Calendar.DAY_OF_YEAR);简单的方法 public static float getDaysBetweenDates(Date d1, Date d2) { float days = (float) (d1.getTime() - d2.getTime()) / (1000 * 60 * 60 * 24); return Math.abs(days); }还有 1903 到 1990 怎么会 是 1158 ??87年才1158天? 不对吧,请输入年份1903请输入月份3请输入日子3距离1990/1/1的天数:-714718526结果为啥是这个啊!天数应该是:1158 java中,泛型的规范 hibernate更新问题 布尔值 true 急:如何查处cpu使用率高的sql语句? Hibernate 面向对象设计数据库问题 请教:在一个视图里面有统计函数的时候出现UPDATE is not updatable 求个会struts2+hibernate+spring框架的大神加个好友或QQ群 **德国队VS哥斯达利加** <比分竞猜接龙> (菜鸟问题)部署完ejb,如何访问发布上去的程序?? 使用xpath的问题? 高分求eclipse插件demo 高分求eclipse插件demo
throws ParseException {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 = format.parse(t1);
Date d2 = format.parse(t2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
// 保证第二个时间一定大于第一个时间
if (c1.after(c2)) {
c1 = c2;
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR);
betweenDays = c2.get(Calendar.DAY_OF_YEAR)
- c1.get(Calendar.DAY_OF_YEAR);
for (int i = 0; i < betweenYears; i++) {
c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1));
betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
}
return betweenDays;
}}
要改成
betweenDays += c1.getActualMaximum(Calendar.DAY_OF_YEAR);简单的方法
public static float getDaysBetweenDates(Date d1, Date d2)
{
float days = (float) (d1.getTime() - d2.getTime())
/ (1000 * 60 * 60 * 24);
return Math.abs(days);
}还有 1903 到 1990 怎么会 是 1158 ??
87年才1158天? 不对吧,
请输入年份1903
请输入月份3
请输入日子3
距离1990/1/1的天数:-714718526结果为啥是这个啊!天数应该是:1158