27. september 2005 - 15:01
Der er
11 kommentarer og 1 løsning
Generere ugens datoer ud fra årstal og ugenummer.
Jeg vil gerne lave en kalender, hvor jeg genererer udatoer for en uge af gangen ud fra årstal og ugenummer. Hvordam skal jeg gøre det?
Annonceindlæg tema
27. september 2005 - 15:08
#1
hovsa - stavefejl: udatoer = ugedatoer. hvordam = hvordan.
27. september 2005 - 15:13
#2
Det jeg gerne vil, som en test, er at vise Mandag d. ?? Tirsdag d.?? Onsdag d.?? osv i hver sin textbox. Disse datoer skal selvfølgelig skifte når man vælger en anden uge/årstal
27. september 2005 - 15:41
#3
Jeg kan ikke finde en pæn løsning men her kommer en løsning: using System; namespace E { public class Util { public static int WeekNumber(int year, int mon, int day) { int a = (14 - mon) / 12; int y = year + 4800 - a; int m = mon + 12*a - 3; int JD = day + (153 * m + 2)/5 + 365*y + y/4 - y/100 + y/400 - 32045; int d4 = (((JD + 31741 - JD % 7) % 146097) % 36524) % 1461; int L = d4 / 1460; int d1 = ((d4 - L) % 365) + L; return d1 / 7 + 1; } } class MainClass { public static void Test(int year, int week) { DateTime dt = new DateTime(year, 1, 1); while(Util.WeekNumber(dt.Year, dt.Month, dt.Day) > 1) { dt = dt.AddDays(1); } while(Util.WeekNumber(dt.Year, dt.Month, dt.Day) < week) { dt = dt.AddDays(1); } while(Util.WeekNumber(dt.Year, dt.Month, dt.Day) == week) { Console.WriteLine(dt.ToString("dd-MMM-yyyy")); dt = dt.AddDays(1); } } public static void Main(string[] args) { Test(2005, 39); Test(2005, 40); } } }
27. september 2005 - 18:54
#4
Jeg ved ikke om man nødvendigvis vil mene at den er pænere - men her er da et alternativ: using System; using System.Globalization; namespace e651359 { class Class1 { [STAThread] static void Main(string[] args) { DateTime[] ThisWeek = GetWeek(2005, 39); foreach (DateTime DT in ThisWeek) { Console.WriteLine(DT); } } static DateTime[] GetWeek(int Year, int Week) { DateTime[] ResultWeek = new DateTime[7]; CultureInfo CI = new CultureInfo("da-DK"); Calendar Cal = CI.Calendar; CalendarWeekRule CWR = CI.DateTimeFormat.CalendarWeekRule; DayOfWeek FDoW = CI.DateTimeFormat.FirstDayOfWeek; DateTime DT = new DateTime(2005, 1, 1); while (Cal.GetWeekOfYear(DT, CWR, FDoW) != Week) { DT = DT.AddDays(7); } while (DT.DayOfWeek != FDoW) { DT = DT.AddDays(-1); } for (int i=0; i<7; i++) { ResultWeek[i] = DT; DT = DT.AddDays(1); } return ResultWeek; } } }
27. september 2005 - 18:55
#5
Skulle selvfølgeligt have været: DateTime DT = new DateTime(Year, 1, 1); - i stedet for: DateTime DT = new DateTime(2005, 1, 1);
14. oktober 2005 - 20:42
#6
Jeg har ikke lige haft tid til at kigge nærmere på det, men i kan vel deles om point?
14. oktober 2005 - 20:47
#7
sagtens og svar fra mig
14. oktober 2005 - 20:50
#8
nu fik jeg dem alle jeg laver lige et 30 point spm. til nielle
14. oktober 2005 - 20:51
#9
14. oktober 2005 - 21:16
#10
ups :)
18. november 2005 - 11:12
#12
okay -tak :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.