Java - wievielter Tag im Jahr berechnen?

2 Antworten

In der Praxis würde man wahrscheinlich eine Hashtabelle nutzen, die jedem Monat die Anzahl an Tagen zuordnet.

Mach also ein Array mit den Elementen 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31

Dann durchläufst du das das Array in einer Schleife. Ungefähr so:

for(i=0;i<monat-1;i++){
 anzahlTage += arrMonatstage[i];  
}
anzahlTage += tag;

Ob es sich um ein Schaltjahr handelt, weißt du bereits. Du könntest dir diesen Status in eine boolschen Variable merken.

Dann brauchst du nur noch den eventualen Schalttag addieren.

if(bSchaltjahr)
  if(monat > 2)
    anzahlTage++;
Woher ich das weiß:Berufserfahrung – Programmierer

j Jahr

sj 1 wenn Schaltjahr, sonst 0

m Monat

t Tag im Monat

n Tag im Jahr

d Anpassung an Kalenderjahr (Februar ist unregelmäßig)

Das Prinzip für Tag im Jahr:

Hin: n=int(m*(30,5+1/c)-(Offset+d))+t

n=int(m*275/9)-30-int((m+9)/12)*(2-sj)+t