Zählt die Kalenderwochen des selektierten Jahres. Die erste Kalenderwoche beginnt am 1.1. des Jahres, egal welcher Wochentag das ist, und wird als Kalendewoche 1 gewertet. Es wird ein 2-Dimensionaler Array zurückgegeben,
wobei die 1. Dimension die Kalenderwochen und die 2. Dimension das Datum des jeweiligen Wochentags ist.
Bsp.: [23, 0] = 24. KW Montag; [0, 6] = 1. KW Sonntag
Größe des Arrays: [anzKW, 7]
In dem Array können "llere" Felder entstehen, deshalb muss bei seiner Verwendung darauf geprüft werden.
Wenn ein Feld "leer" ist hat es das Datum "01.01.0001".
public Array getDatesFromWeekInput_absolut() //läuft
{
int year = (int)getyearinput()[0];
int anzKW = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(new DateTime(year, 12, 31), System.Globalization.CalendarWeekRule.FirstDay, System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek);
DateTime startdate = new DateTime(year,1,1);
DateTime [,] weeksanddates = new DateTime [anzKW, 7];
for (int i = 0; i < anzKW; i++)
{
for (int j = 0; j < 7; j++)
{
DateTime tempdate = startdate;
if (i == 0)
{
if (tempdate.DayOfWeek == DayOfWeek.Monday)
weeksanddates[i, 0] = tempdate;
if (tempdate.DayOfWeek == DayOfWeek.Tuesday)
weeksanddates[i, 1] = tempdate;
if (tempdate.DayOfWeek == DayOfWeek.Wednesday)
weeksanddates[i, 2] = tempdate;
if (tempdate.DayOfWeek == DayOfWeek.Thursday)
weeksanddates[i, 3] = tempdate;
if (tempdate.DayOfWeek == DayOfWeek.Friday)
weeksanddates[i, 4] = tempdate;
if (tempdate.DayOfWeek == DayOfWeek.Saturday)
weeksanddates[i, 5] = tempdate;
if (tempdate.DayOfWeek == DayOfWeek.Sunday)
{
weeksanddates[i, 6] = tempdate;
j = 7;
}
}
else
{
weeksanddates[i, j] = tempdate;
}
if (tempdate.Day == 31 && tempdate.Month == 12)
break; //Abbruch der kompletten Schleife
tempdate = startdate.AddDays(1);
startdate = tempdate;
}
}
return weeksanddates;
}
2 Kommentare zum Snippet