# Datum in GregorianCalendar



## Fry (12. Sep 2005)

Hallo,

ich werd noch wild hier  :roll: 

Ausgangslage: String auslesen, zerteilen und daraus GregorianCalendar machen
Problem: Was ich reinstecke in GC und was rauskommt, passt nicht

```
int tag = Integer.parseInt(array[i][1].toString().substring(0,2));
int monat = Integer.parseInt(array[i][1].toString().substring(3,5));
int jahr = Integer.parseInt(array[i][1].toString().substring(6));
```
Ich habe ein Array, da steht ein Datum drin, der Form TT.MM.JJJJ. Das zerschneide ich durch die Substrings und will daraus den Kalender füttern mit

```
kalenderCheck.set(jahr,monat,tag);
```
steht ja auch so in der API (http://java.sun.com/j2se/1.5.0/docs/api/java/util/GregorianCalendar.html#GregorianCalendar(int,%20int,%20int))
Wenn ich jetzt mal reingucke was drin ist mit:

```
System.out.println(kalenderCheck.get(GregorianCalendar.DAY_OF_MONTH) + "." 
								+ kalenderCheck.get(GregorianCalendar.MONTH) + "." + kalenderCheck.get(GregorianCalendar.YEAR) 
								+ " Day of Week ist " + GregorianCalendar.DAY_OF_WEEK);
```

dann kommt heraus (oben für tag = 9, monat = 9, jahr = 2005)

```
9.9.2005 Day of Week ist 1
```

Day of Week passt aber nicht, weil der 9.9 nen Freitag ist, die "1" steht ja für Sonntag (http://www.galileocomputing.de/openbook/javainsel3/javainsel_100006.htm)

Entweder isses zu spät und ich sehs nicht mehr, oder da ist nen Fehler drin, aber ich find den net  :roll:

Wäre für Hilfe dankbar

Fry


----------



## Guest (12. Sep 2005)

Hoffentlich bleibt es künftig auch 1, sonst muss ich ziemlich viele Sachen umschreiben. :bae: 

GregorianCalendar.DAY_OF_WEEK !=  kalenderCheck.get(GregorianCalendar.DAY_OF_WEEK)


----------



## Fry (12. Sep 2005)

Ach mensch... es war eindeutig zu spät :lol: , danke


----------



## Fry (18. Sep 2005)

Hallo,

ich hab nochmal nen prob :-(

Was ist an dem Code falsch?


```
//Wenn das heutige Datum größer ist, als das betrachtende wird geprüft...
						if(kalenderHeute.compareTo(kalenderCheck) > 0)
						{
							/*
							 * Zählen wieviele Samstange und Sonntag zwischen den beiden Daten liegen und diese Daten abziehen
							 */
							
							while(kalenderHeute.compareTo(kalenderCheck) != 0)
							{
								System.out.println("Kalender Check: " + sdf.format(kalenderCheck.getTime()));
								System.out.println("Kalender Heute: " + sdf.format(kalenderHeute.getTime()));
								
								//Wenn der Tag Samstag oder Sonntag ist aufpassen und diesen zählen
								if(kalenderCheck.get(kalenderCheck.DAY_OF_WEEK) == 1 || kalenderCheck.get(kalenderCheck.DAY_OF_WEEK) == 7)
								{
									tageZumAbziehen++;
									//Debug
									System.out.println("abgezogen wird: " + sdf.format(kalenderCheck.getTime()));
									System.out.println("DAY_OF_WEEK: " + kalenderCheck.get(kalenderCheck.DAY_OF_WEEK));
									System.out.println("");
								}
								//Wenn kein Samstag oder Sonntag dann den Tag zählen
								else
								{
									tageZumZählen++;
									//Debug
									System.out.println("gezählt wird: " + sdf.format(kalenderCheck.getTime()));
									System.out.println("DAY_OF_WEEK: " + kalenderCheck.get(kalenderCheck.DAY_OF_WEEK));
									System.out.println("");
								}
								kalenderCheck.add(kalenderCheck.DATE, 1);
							}
							int tageInZuweisung = tageZumZählen;
							
							System.out.println("Tage :\t\t" + tageInZuweisung);
							System.out.println("Tage abgezogen (weil Sa oder So):\t\t\t " + tageZumAbziehen + "\n");
							
							//Und wieder auf "0" setzen für nächsten Durchlauf
							tageZumAbziehen = 0;
							tageZumZählen = 0;
						}
```

Ich möchte nur folgendes machen. Datum1 ist in der Vergangenheit und das zweite Datum ist immer heute. Jetzt will ich von dem ersten Datum bis heute die Werktage zählen ( also SA und SO ) sollen nicht gelten.

Nur dummerweise kommt da immer folgendes raus. (für ein Beispieldatum)

Kalender Check: 09.10.2005
Kalender Heute: 18.10.2005
abgezogen wird: 09.10.2005
DAY_OF_WEEK: 1

Kalender Check: 10.10.2005
Kalender Heute: 18.10.2005
gezählt wird: 10.10.2005
DAY_OF_WEEK: 2

Kalender Check: 11.10.2005
Kalender Heute: 18.10.2005
gezählt wird: 11.10.2005
DAY_OF_WEEK: 3

Kalender Check: 12.10.2005
Kalender Heute: 18.10.2005
gezählt wird: 12.10.2005
DAY_OF_WEEK: 4

Kalender Check: 13.10.2005
Kalender Heute: 18.10.2005
gezählt wird: 13.10.2005
DAY_OF_WEEK: 5

Kalender Check: 14.10.2005
Kalender Heute: 18.10.2005
gezählt wird: 14.10.2005
DAY_OF_WEEK: 6

Kalender Check: 15.10.2005
Kalender Heute: 18.10.2005
abgezogen wird: 15.10.2005
DAY_OF_WEEK: 7

Kalender Check: 16.10.2005
Kalender Heute: 18.10.2005
abgezogen wird: 16.10.2005
DAY_OF_WEEK: 1

Kalender Check: 17.10.2005
Kalender Heute: 18.10.2005
gezählt wird: 17.10.2005
DAY_OF_WEEK: 2

Tage:		6
Tage abgezogen (weil Sa oder So):			 3

gleich beim ersten ist schon nen fehler, der 9.9 ist ein Freitag und darf nicht abgezogen werden. DAY_OF_WEEK ist hier aber 1 und wird abgezogen. Verstehe ich nicht ganz. Kann mir da wer helfen?

Dankeschön!

Fry


----------

