Jeg tvivler på det, da den gør brug af GNU date værktøjet. Men du må da gerne se koden.
- $year = 2008;
- $week = 5;
- $day = "monday";
- $timestamp = strtotime("01 january $year +$week weeks next $day");
- echo date('Y-M-d-D', $timestamp);
Det var desværre ikke til nogen hjælp men tak for det alligevel
Nogen der har en løsning til .NET?
Når der nu ikke er nogen der kan hjælpe mig med en løsning må man jo selv forsøge sig frem
- public static DateTime? GetDate(
- int year, int weeknumber, DayOfWeek day)
- {
- if ((year > 0)
- && (weeknumber > 0))
- {
- DateTime outputDate =
- new DateTime();
-
- DateTime firstDayOfYear =
- new DateTime(year, 1, 1);
-
- CultureInfo ci =
- new CultureInfo("en-US");
- Calendar cal =
- ci.Calendar;
-
- int firstWeekNumber =
- cal.GetWeekOfYear(firstDayOfYear, ci.DateTimeFormat.CalendarWeekRule, ci.DateTimeFormat.FirstDayOfWeek);
-
- if (firstWeekNumber > 1)
- {
- outputDate =
- firstDayOfYear.AddDays((weeknumber + 1) * 7);
- }
- else
- {
- outputDate =
- firstDayOfYear.AddDays((weeknumber - 1) * 7);
- }
-
- int daysToAdd = 0;
-
- switch (outputDate.DayOfWeek)
- {
- case DayOfWeek.Monday:
- daysToAdd = 0;
- break;
- case DayOfWeek.Tuesday:
- daysToAdd = -1;
- break;
- case DayOfWeek.Wednesday:
- daysToAdd = -2;
- break;
- case DayOfWeek.Thursday:
- daysToAdd = -3;
- break;
- case DayOfWeek.Friday:
- daysToAdd = -4;
- break;
- case DayOfWeek.Saturday:
- daysToAdd = -5;
- break;
- case DayOfWeek.Sunday:
- daysToAdd = -6;
- break;
- }
-
- outputDate =
- outputDate.AddDays(daysToAdd);
-
- switch (day)
- {
- case DayOfWeek.Monday:
- daysToAdd = 0;
- break;
- case DayOfWeek.Tuesday:
- daysToAdd = 1;
- break;
- case DayOfWeek.Wednesday:
- daysToAdd = 2;
- break;
- case DayOfWeek.Thursday:
- daysToAdd = 3;
- break;
- case DayOfWeek.Friday:
- daysToAdd = 4;
- break;
- case DayOfWeek.Saturday:
- daysToAdd = 5;
- break;
- case DayOfWeek.Sunday:
- daysToAdd = 6;
- break;
- }
-
- outputDate =
- outputDate.AddDays(daysToAdd);
-
- return outputDate;
- }
- else
- {
- return null;
- }
- }
Har testet den og det ser ud til at virke. Hvis der er nogen der har forenklinger af metoden må de meget gerne komme med dem
Den eneste der har skrevet indtil videre får pointene simpelthen for engagementet.
Indlæg senest redigeret d. 06.09.2008 11:53 af Bruger #2243