2012-05-31 16 views
8

berechnen Ich möchte wissen, wie Sie die Zahlen des Monats zwischen zwei Daten berechnen. Gibt es irgendeine Methode, um es in C# zu berechnen?Wie kann ich die Anzahl der Monate zwischen zwei Daten in C#

Eg1. Date1 = "2011/11/01" 
     Date2 = "2012/02/01"  
Result. Numbers of Month =3 

Eg2. Date1 = "2012/01/31" 
     Date2 = "2012/02/01" 
Result. Numbers of Month =1 

Eg3. Date1 = "2012/01/01" 
     Date2 = "2012/02/28" 
Result. Numbers of Month =1 
+2

Wie wäre es noch ein paar Testfälle? Ihr Problem ist unterspezifiziert. Dies ist eines der Probleme, bei dem es schwieriger ist, herauszufinden, was Sie wollen, als es zu implementieren. – CodesInChaos

+3

http://StackOverflow.com/Questions/1525990/Difference-in-Months –

+1

Zuerst sollten Sie eine klare Vorstellung davon haben, was "die Anzahl der Monate zwischen zwei Daten" ist. Wie 2012-01-25 zu 2012-02-01 oder zu 2012-02-24 usw. Wenn Sie tun, überprüfen Sie die Antworten, wenn sie mit Ihrer Idee übereinstimmen. –

Antwort

11

Dies wird Unterschied zwischen den Monaten geben:

int months = (Date2.Year - Date1.Year) * 12 + Date2.Month - Date1.Month; 
+2

Das ist eine mögliche Antwort, je nachdem, was das OP eigentlich will. Zum Beispiel gibt dies 1 für MonthBetween (2012-06-01, 2012-05-31) zurück, was das OP vielleicht haben mag oder nicht. – CodesInChaos

+0

Das berücksichtigt jedoch nicht den Tag des Monats. Zum Beispiel wird es die gleiche Anzahl von Monaten zwischen dem 31. Mai und dem 1. Juni zwischen dem 1. Mai und dem 31. Juni geben. Ich denke nicht, dass viele Leute dieses Ergebnis erwarten würden. –

+0

@Jon Skeet: Es tut mir sehr leid für meine unklare Frage. Ich möchte jedoch den Tag des Monats aufgrund der Systemanforderungen nicht berücksichtigen. Jetzt habe ich meine Frage bearbeitet. – lelewin

8

Mein Noda Time Projekt sieht folgendermaßen aus:

LocalDate date1 = new LocalDate(2011, 11, 1); 
LocalDate date2 = new LocalDate(2012, 2, 1); 
Period period = Period.Between(date1, date2, PeriodUnits.Months); 
long months = period.Months; // 3 

die project documentation for arithmetic für weitere Informationen.

Verwandte Themen