Avatar billede askhoej Praktikant
07. januar 2003 - 16:17 Der er 14 kommentarer og
1 løsning

De sidste 20 uge numre

Hej C#'er

Er der en der kan hjælpe med en metode der udskriver de sidste 20 uger, startende fra den uge vi er i?

/askhoej
Avatar billede mjohansen Nybegynder
07. januar 2003 - 18:58 #1
class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("da-DK");
            DateTime dt;
            int i;

            dt = DateTime.Now;
            for (i = 0; i < 20; i++)
            {
                System.Console.WriteLine(ci.Calendar.GetWeekOfYear(dt, ci.DateTimeFormat.CalendarWeekRule, ci.DateTimeFormat.FirstDayOfWeek).ToString());
                dt = dt.AddDays(-7);
            }
        }
    }
Avatar billede askhoej Praktikant
07. januar 2003 - 19:19 #2
mjohansen >> Kan se at du ender op med samme problem som mig :-) Din kode springer uge 1 over, hvordan kan det løses?

/askhoej
Avatar billede mjohansen Nybegynder
08. januar 2003 - 09:34 #3
Du har da ret! Nu har jeg lige set på en site jeg har lavet. Jeg tror du har fundet en bug i .NET frameworket. Min site viser ugenumre på en tabel og der "insisterer" den på at 30. og 31. December er uge 53 mens 1. Januar er uge 1. Jeg sender lige en bugrapport til MS.
Avatar billede askhoej Praktikant
08. januar 2003 - 10:34 #4
Det er vel rimelig logisk at koden springer uge 1 over, da den har en underlige størrelse i år?

Men det er generelt underligt i .NET at man helt har set hen over at der findes noget der hedder uger!! Hvis man kigger i SDK'en under "Date and Time Format Strings" kan man finde formateringsstrenge til en syvendedel af et sekund men ikke til at finde ugen??

/askhoej
Avatar billede mjohansen Nybegynder
08. januar 2003 - 10:38 #5
Det er fordi, ugenummereringen er afhængig af landet. Derfor bruges CultureInfo. Så de har tænkt sig om. Det er bare lige det med uge 53 der ikke er helt smart.
Avatar billede mjohansen Nybegynder
08. januar 2003 - 10:42 #6
Se denne kode der viser fejlen i .NET:

    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("da-DK");
            DateTime dt;
            int i;

            dt = new DateTime(2002, 12, 24, 0, 0, 0, 0, ci.Calendar);
            for (i = 0; i < 20; i++)
            {
                System.Console.WriteLine(dt.ToShortDateString() + ": " + ci.Calendar.GetWeekOfYear(dt, ci.DateTimeFormat.CalendarWeekRule, ci.DateTimeFormat.FirstDayOfWeek).ToString());
                dt = dt.AddDays(1);
            }
        }
    }
Avatar billede askhoej Praktikant
08. januar 2003 - 10:51 #7
Hvilken fejl er det du siger, der er i ovenstående?
Avatar billede mjohansen Nybegynder
08. januar 2003 - 10:57 #8
Kig på output. 30. og 31. december får ugenummer 53 hvilket er forkert.
Avatar billede askhoej Praktikant
08. januar 2003 - 11:02 #9
Den havde jeg lige overset :-)

Hmm, orker ikke at skrive min egen funktion til at finde ugenummeret - men det kan være man bliver nød til det?
Avatar billede mjohansen Nybegynder
08. januar 2003 - 11:05 #10
Ellers:

if (weeknumber == 53) weeknumber = 1;

Quick and dirty workaround. ;-)
Avatar billede Slettet bruger
20. januar 2003 - 13:28 #11
Se evt denne tråd på Google: http://groups.google.com/groups?q=GetWeekOfYear+pss&hl=da&lr=&ie=UTF-8&oe=UTF-8&selm=tkOPGT7vBHA.2040%40cpmsftngxa07&rnum=1

Her har en fyr fra MS support skrevet at det ikke er en bug!!
Avatar billede askhoej Praktikant
20. januar 2003 - 15:42 #12
icarus >> ud fra den tråd kan jeg ikke helt fange hvorfor det ikke skulle være en bug? - de kommentarer fra Microsoft gutten giver ikke mig noget, gir det dig noget?

/askhoej
Avatar billede Slettet bruger
20. januar 2003 - 18:13 #13
Han henviser til dokumentationen, men jeg kan heller ikke rigtig lige læse det samme ud af det som ham. Hvis der er oprettet et support case på det (af mjohansen), kan det være vi får en bedre forklaring (Det er jo ikke udelukket at det er en bug)
Avatar billede askhoej Praktikant
20. januar 2003 - 18:57 #14
ja måske, hvis mjohansen har oprettet en case? - Jeg mener enten så har man et objekt der kan finde det ugenummer man er i ellers så har man ikke, det nytter jo ikke noget at man selv skal sidde og undersøge om de (microsoft) har dummet sig.
Avatar billede askhoej Praktikant
30. januar 2003 - 11:54 #15
Fik det aldrig løst og Microsoft svarer ikke igen, men skal nok melde tilbage hvis der sker noget.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester