Hallo Zusammen!
Ich möchte ein Datum berechnen lassen! Dabei wird das Anfangsdatum analysiert und mit dem Enddatum verglichen.
Wenn ein Datum mit dem 1 Tag (nur dann) in diesem Monat anfängt z.b 1.05.05 und über den Monat hinausgeht gilt die 30 Tage-Regelung.(speichert das in die Variable Monate) sonst speichert er die Werte in die Variable Tage.
Ein kleines Rechenbeispiel: Startdatum: 1.5.05 Enddatum: 15.7.05
Rechnung: vom 1.5.05-31.5.05 gilt 30-Tageregelung = Sprich --> Monat++;(Monat = 1)
vom 1.6.05-31.6.05 gilt 30-Tageregelung = Monat++;(Monat =2);
vom 1.7.05-15.7.05 gilt normale Regelung = Tage++;
Das heisst es müsste: 2 Monate, 15 Tage ausgeben.
Das habe ich Versucht programmtechnisch zu lösen jedoch berechnet er mir das falsch. Könnt ihr mir weiterhelfen weil ich so langsam verzweifle! Danke an alle im voraus
hier mein Code:
Ich möchte ein Datum berechnen lassen! Dabei wird das Anfangsdatum analysiert und mit dem Enddatum verglichen.
Wenn ein Datum mit dem 1 Tag (nur dann) in diesem Monat anfängt z.b 1.05.05 und über den Monat hinausgeht gilt die 30 Tage-Regelung.(speichert das in die Variable Monate) sonst speichert er die Werte in die Variable Tage.
Ein kleines Rechenbeispiel: Startdatum: 1.5.05 Enddatum: 15.7.05
Rechnung: vom 1.5.05-31.5.05 gilt 30-Tageregelung = Sprich --> Monat++;(Monat = 1)
vom 1.6.05-31.6.05 gilt 30-Tageregelung = Monat++;(Monat =2);
vom 1.7.05-15.7.05 gilt normale Regelung = Tage++;
Das heisst es müsste: 2 Monate, 15 Tage ausgeben.
Das habe ich Versucht programmtechnisch zu lösen jedoch berechnet er mir das falsch. Könnt ihr mir weiterhelfen weil ich so langsam verzweifle! Danke an alle im voraus
hier mein Code:
Code:
int zaehler_index = 0;
int monate = 0;
int Tage_Abzug = 0;
//Aufpassen da Monat immer von 0..11 Rechnet anstatt von 1..12
GregorianCalendar Von = new GregorianCalendar(2005,4,1);
GregorianCalendar Bis = new GregorianCalendar(2005,7,15);
GregorianCalendar ZwischenSpeicher = new GregorianCalendar();
while((Von.before(Bis))||(Von.equals(Bis)))
{
//Erste Tag trifft zur
if(Von.get(Calendar.DATE)==1)
{
ZwischenSpeicher.set(Von.get(Calendar.YEAR),Von.get(Calendar.MONTH)+1,Von.get(Calendar.DATE));
ZwischenSpeicher.add(Calendar.DATE,-1);
if(ZwischenSpeicher.before(Bis)||ZwischenSpeicher.equals(Bis))
{
monate++;
Tage_Abzug = Tage_Abzug + ZwischenSpeicher.get(Calendar.DATE);
System.out.println(Tage_Abzug);
}
}//Ende if
zaehler_index++;
Von.add(Calendar.DATE,1);
}//Ende while
zaehler_index = zaehler_index - Tage_Abzug;
System.out.println("Zeitraum in Tagen:" + (zaehler_index));
System.out.println("Zeitraum in Monate:" + (monate));
}