tageszahl in Datum umrechnen

Berliner89

Neues Mitglied
Hallo Leute,

bin neu hier im Forum und hoffe sehr auf eure Hilfe... ich bin gerade sehr stark am verzweifeln -.-

ich habe folgende Methode:

int ostersonntag(int jahr)
{
int gz, jhd, ksj, korr, so, epakte, n;

gz = (jahr%19)+1;
jhd = jahr/100+1;
ksj = (3*jhd)/4-12;
korr = (8*jhd+5)/25-5;
so = (5*jahr)/4-ksj-10;
epakte = (11*gz+20+korr-ksj) % 30;
if ( (epakte == 25 && gz > 11) || epakte == 24 )
epakte++;
n = 44-epakte;
if ( n < 21 )
n = n + 30;
n = n + 7 - (so+n) % 7;
n += schaltjahr(jahr);
return n+59;
}"

Diese gibt mir den Wert 110 zurück. (110 Tage von Jahresanfang bis Ostersonntag)
Mit diesem Datum kann man ja dann alle weiteren Feiertage des Jahres berechnen.

Nun möchte ich aber, dass mir eine Methode die zahl 110 wieder in ein Datumsformat ändert. Gerne auch als String. Also am ende möchte ich 20.04.2014 zB wieder als Ergebnis geliefert bekommen.

Berücksichtigung bezüglich Schaltjahr habe ich bereits, hier erhalte ich entweder true oder false zurück und dementsprechend arbeite ich dann weiter mit diesem Array:

public final int MONATSLAENGE[][] = {
{ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };

Hat einer eine Idee wie ich das Ganze umsetzen kann?
Ich hoffe ihr könnt mir helfen

Lg
 
Danke für die Antwort.

Wie genau funktioniert das mit den Klassen?
Kenne mich da nicht so gut aus und der Code oben wurde mir auch nur vorgegeben.
 
Hier mal ein kleiner Test wie vom 01.01.2014 das Datum 109 Tage später berechnet wird

Java:
	@Test
	public void test() {
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
		LocalDate ersterJanuar = LocalDate.now().withDayOfYear(1);
		LocalDate osterSonntag = ersterJanuar.plusDays(109); // 110 ist Montag
		assertEquals("20.04.2014", dateTimeFormatter.format(osterSonntag));
		assertEquals("SUNDAY", osterSonntag.getDayOfWeek().name());
	}
 
Hier mal ein kleiner Test wie vom 01.01.2014 das Datum 109 Tage später berechnet wird

Java:
	@Test
	public void test() {
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
		LocalDate ersterJanuar = LocalDate.now().withDayOfYear(1);
		LocalDate osterSonntag = ersterJanuar.plusDays(109); // 110 ist Montag
		assertEquals("20.04.2014", dateTimeFormatter.format(osterSonntag));
		assertEquals("SUNDAY", osterSonntag.getDayOfWeek().name());
	}

:idea: Praktischer wäre es aber natürlich noch, wenn du nicht das exakte Datum angeben musst, sondern der Computer das berechnet, da sobald der Computer den Ostersonntag berechnet hat, können viele andere Feiertage auch ganz einfach berechnet werden, da viele Feiertage Abhängig vom Ostersonntag sind.
 

Zurück
Oben