Datumsberechnung - Differenz von Monaten

Status
Nicht offen für weitere Antworten.
L

leo98Hans

Gast
Hallo,
ich würde gerne die Differenz zweier Daten als monate ausgeben, ich habe leider eine vorraussetzung die das ganze erschwert.

Sobald ein Monat angefangen hat, zählt er als ganzer monat mit.

Bsp:

von= 01.01.2009 // bis = 30.01.2009 --> 1 Monat
von= 01.01.2009 // bis = 01.02.2009 --> 2 Monate
von= 01.01.2009 // bis = 23.03.2009 --> 3 Monate
von= 01.01.2009 // bis = 01.01.2010 --> 13 Monate

usw...


Mein jetziger code sieht so aus und berechnet die Monate eigentlich korrekt. Ich brauche nur noch den zusatz der meine Bedinung erfüllt. Habt ihr eine idee ???


Java:
                          long timeVon = datStartDate.getTime();
		    long timeBis = datEndDate.getTime();
		    
		    long time = timeBis - timeVon;

		    long days = Math.round( (double)time / (24. * 60.*60.*1000.*30.) );  

		    intAnzahlMonate = (int)Math.round(days);

Danke !!!
 
L

leo98Hans1

Gast
+1 habe ich auch schon versucht. Allerdings bekomme ich folgendes ergebnis:

Aufbau:

Von | Bis | Anzahl Monate

"2009.10.01|"2010.04.30|"8 --> Sind eigentlich nur 7 Monate
"2010.05.01|"2010.05.31|"2 --> ist eigentlich nur 1 Monat
"2010.12.01|"2011.02.01|"3 --> hier würde es passen

Allerdings sind entweder die beiden ersten Werte korrekt, dem letzten fehlt ein Monat. Wenn ich mit +1 rechne schauts so aus wie jetzt.

Danke
 
S

SlaterB

Gast
wie passt da die vorherige Aussage
> Mein jetziger code sieht so aus und berechnet die Monate eigentlich korrekt.
? ;)

das liegt nämlich an deiner Abkürzung '1 Monat = 30 Tage', es sind manchmal auch 28, 29 oder 31

du kannst die Calendar-Klasse verwenden und dir zu einem gegebenen Datum das Jahr den Monat als Nummer geben lassen,
dann musst du zwischen diesen berechenbareren Werten die Differenz bestimmen und am Ende immer noch +1
 
L

leo98Hans2

Gast
Cool, besten Dank. Ich denke ich habs soweit =)

Falls es jemanden interessiert, hier der code:

Java:
	           String von = "20100101";
		String bis = "20111228";
			
		     java.util.Date datStartDate = Encoder.YYYYMMTT2Date(von);
	                java.util.Date datEndDate   = Encoder.YYYYMMTT2Date(bis);
					    
		    Calendar myCalBis = Calendar.getInstance();                     
		    Calendar myCalVon = Calendar.getInstance();  
		    
		    myCalBis.setTime( datEndDate );     
		    myCalVon.setTime( datStartDate );  

		    int yearBis = myCalBis.get( Calendar.YEAR  );
		    int mnthBis = myCalBis.get( Calendar.MONTH ) + 1;    
		    
		    int yearVon = myCalVon.get( Calendar.YEAR  );
		    int mnthVon = myCalVon.get( Calendar.MONTH ) + 1; 
		    
		    int mnth = (mnthBis - mnthVon)+1;
		    
		    yearBis = yearBis - yearVon;
		    
		    mnth = (yearBis*12) + mnth;

	    	System.out.println(mnth);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Differenz zwischen LocalDateTime Java Basics - Anfänger-Themen 4
Leo_1789 Differenz ausrechnen zwischen denn idealgewicht und denn echten Gewicht Java Basics - Anfänger-Themen 7
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
F Datum Differenz berechnen Java Basics - Anfänger-Themen 7
Z Differenz zwischen 2 Daten berechnen, ohne importiere Funktionen! Java Basics - Anfänger-Themen 10
T Programm, das die Differenz zweier Daten ausgibt Java Basics - Anfänger-Themen 4
B Differenz von 2 Datum Java Basics - Anfänger-Themen 8
L Date differenz Java Basics - Anfänger-Themen 6
C GregorianCalendar 2 Datumswerte(Differenz) auf volles Jahr prüfen Java Basics - Anfänger-Themen 4
C Differenz-Methode mit Array lösen Java Basics - Anfänger-Themen 14
W Differenz in Tagen von 2 Daten Java Basics - Anfänger-Themen 6
F java.sql.Date Differenz Java Basics - Anfänger-Themen 3
B Differenz zwischen zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 2
G Differenz in Tage Java Basics - Anfänger-Themen 3
H Differenz zwischen Datum Java Basics - Anfänger-Themen 4
B Datum: Differenz in Tagen berechen Java Basics - Anfänger-Themen 3
R Differenz Iterative Java Basics - Anfänger-Themen 14
T Differenz berechen Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben