# Monat anhand einer KW und eines Jahres ermitteln



## Nob (21. März 2005)

Hallo miteinander

Ich möchte den Monat anhand einer Kalenderwoche und eines Jahres ermitteln.
Dazu habe ich folgendes Skript verwendet: (Kennen sicher einige von euch)


```
function firstkw($jahr) {
	$erster = mktime(0,0,0,1,1,$jahr);
	$wtag = date('w',$erster);
	
	if ($wtag <= 4) {
	// Donnerstag oder kleiner: auf den Montag zurückrechnen.
		$montag = mktime(0,0,0,1,1-($wtag-1),$jahr);
		//echo $wtag." => ".$montag." ¬";
	} else {
		// auf den Montag nach vorne rechnen.
	$montag = mktime(0,0,0,1,1+(7-$wtag+1),$jahr);
	}
	return $montag;
}

function mondaykw($kw,$jahr) {
	$firstmonday = firstkw($jahr);
	$mon_monat = date('m',$firstmonday);
	$mon_jahr = date('Y',$firstmonday);
	$mon_tage = date('d',$firstmonday);
	
	$tage = ($kw-1)*7;
	
	$mondaykw = mktime(0,0,0,$mon_monat,$mon_tage+$tage,$mon_jahr);
	return $mondaykw;
}
```

Zu meinem Problem:
Wenn ich die Kalenderwoche 1 und das Jahr 2005 in die Funktion gebe, bekomme ich auch das richtige Resultat. Bei KW 1 und Jahr 2004 allerdings nicht..

date('m',mondaykw(1,2004)) => 12
date('m',mondaykw(1,2005)) => 01

Woran liegt das? Was mach ich falsch? 

Danke im Vorraus!
Gruss Michi


----------



## BobDerMeister (21. März 2005)

ich verstehe dein Problem nicht? Der Montag der 1.KW 2004 ist der 29.12.2003


----------



## SilentWarrior (21. März 2005)

Wenn du willst, dass die erste Kalenderwoche als die erste Woche interpretiert wird, in der der Montag der erste des neuen Jahres ist, dann musst du die letzte Zeile der Funktion mondaykw wie folgt ergänzen:
	
	
	



```
return $mondaykw + 604800;
```


----------



## Nob (23. März 2005)

Danke für die Hilfe  ;-)


----------

