我有几种格式的日期:31/08/13
,并且我从xls
文件获取tehm
我需要做的是获取上个月并计算这些日期之间的天数。我真的不知道该怎么办。
这是我尝试过的:
代码已编辑*
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
end.setTime(row.getCell(0).getDateCellValue());
start.add(start.MONTH,-1);
Date startDate = start.getTime();
Date endDate = end.getTime();
long startTime = startDate.getTime();
long endTime = endDate.getTime();
long diffTime = endTime - startTime;
long diffDays = diffTime / (1000 * 60 * 60 * 24);
if(diffDays < 0){
System.out.println(Math.abs(diffDays));
}
DateFormat dateFormatw = DateFormat.getDateInstance();
System.out.println("The difference between "+
dateFormatw.format(startDate)+" and "+
dateFormatw.format(endDate)+" is "+
diffDays+" days.");
但这似乎是错误的。我真的很累,实在没办法。我为此失去了太多时间,没有运气。
我试图获取一个月前的相同日期,并计算这两个日期
endTime
和startTime
之间的天数请帮我!
最佳答案
我不知道ProdCalendar
是什么,大概是项目内部的东西。但是获取两个日期之间的天数的简单方法是(我认为)您想要的是:
//First date
Date d1 = dateFormat.parse("31-10-13");
//Second date
Date d2 = dateFormat.parse("31-08-13");
//Interval:
long intervalMs = d1.getTime() - d2.getTime();
long intervalDays = intervalMs/(1000*60*60*24);
在您的代码中,
date22
仅用new date()
初始化,因此它将是当前系统时间。您正在将其(以分离的方式)与从电子表格中检索的日期进行比较。我还注意到此行附近的日历cal
:Calendar cal = Calendar.getInstance();
cal.setTime(row.getCell(0).getDateCellValue());
不再使用,因此显得多余。
您的代码比需要的要复杂得多,因此您需要退后一步,然后考虑要实现的目标。简单的代码就是好的代码。