разность дат в днях в поле даты и времени в вершине - PullRequest
1 голос
/ 30 марта 2012

Как я могу найти разницу между двумя полями даты и времени в днях?

Я не смог найти ничего в документации по этому вопросу. я могу видеть, что есть методы для добавления часов, дней, но не могу найти что-либо при получении даты.

Единственный способ, которым я могу придумать, - преобразовать оба поля в datetime, используя valueof, и использовать функцию date daysbetween.

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

Есть еще варианты получше?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2012

Вы можете сделать это:

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

Это будет конвертировать каждую дату в миллисекунды, вычитать одну из другой, а затем конвертировать ее в целое число дней. или может конвертировать в десятичные дни.

0 голосов
/ 21 июля 2017
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);
...