日期中日期时间字段中的日期差异

时间:2012-03-30 07:46:21

标签: salesforce apex-code apex

如何在天内找到2个日期时间字段的差异?

我无法在此文档中找到任何内容。我可以看到有方法可以增加小时数,天数,但无法找到任何关于获得日期差异的内容。

我能想到的一种方法是使用valueof将两个字段转换为日期时间,并使用日期函数天数。

    integer Days__c = Date.today().daysBetween(date.valueof(datetimefield__c));

还有其他更好的选择吗?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

integer Days = Integer.valueOf((Date2.getTime() - Date1.getTime())/(1000*60*60*24));

这会将每个日期转换为毫秒,从另一个中减去一个,然后将其转换为整数天。或者可以转换为十进制天数。

答案 1 :(得分:0)

Datetime startDate = system.now();// Start date
Datetime endDate = system.now().addHours(60);//End Date

Integer noOfDays = startDate.Date().daysBetween(endDate.Date());
System.debug('No Of Days : '+noOfDays);

Datetime sameDayEndDate = startDate.addDays(noOfDays);
System.debug('Same Day : '+sameDayEndDate);

Decimal decHours = ((endDate.getTime())/1000/60/60) - ((sameDayEndDate.getTime())/1000/60/60);
System.debug('Dec Hours : '+decHours); 

decimal decMinutes = ((endDate.getTime())/1000/60) - ((sameDayEndDate.getTime())/1000/60);
System.debug('Minutes : '+decMinutes);