2012-03-30 12 views
1

Wie kann ich den Unterschied von 2 Datetime-Feldern in Tagen finden?Datumunterschiede in Tagen in einem Datetime-Feld im Scheitelpunkt

Ich konnte nichts auf der Dokumentation dafür finden. Ich kann sehen, dass es Methoden gibt, um Stunden, Tage hinzuzufügen, aber kann nichts finden, wenn man den Datumunterschied erhält.

Die eine Möglichkeit, die ich mir vorstellen kann, besteht darin, beide Felder mit valueof in datetime zu konvertieren und die Datumsfunktion daysbetween zu verwenden.

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

Gibt es noch andere bessere Optionen?

+1

Haben Sie versucht, datetime DayDifference = Date.today() - date.valueof (datetimefield__c) '? Ich glaube, dass ich vorher für einen Unterschied erfolgreich abgezogen habe. – VictorKilo

Antwort

2

Sie können dies tun:

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

Dies würde jedes Datum in Millisekunden konvertieren, subtrahiert eine von dem anderen, es dann in ganzer Zahl von Tagen konvertieren. oder könnte in Dezimal-Tage umgewandelt werden.

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);