Avatar billede krukken Juniormester
20. december 2007 - 16:58 Der er 6 kommentarer og
1 løsning

Valider af dato

Jeg har tre felter dag, måned og år. Jeg skal have kontrolleret at disse tilsammen giver en valid dato. Altså ved jeg allerede at der dagen er mellem 1 0g 32, måneder 1 0g 12 og at der er angivet et årstal med fire tal. Men jeg skal have kontrolleret at den 31 juni faktisk findes.

Vigtig: det må ikke ske med try-catch.
Avatar billede arne_v Ekspert
20. december 2007 - 17:53 #1
nyere .NET : DateTime TryParse ?
Avatar billede arne_v Ekspert
20. december 2007 - 17:55 #2
et lille array days_in_month af dimension 12 x 2 (antal maaneder x skudaar eller ej) ?
Avatar billede krukken Juniormester
20. december 2007 - 18:08 #3
Jeg har faktisk anvendt TryParse. Jeg synes bare, at det er lige grimt at man skal sidde og formatere en string: dag + "/" + måned + "/" + year + " 00:00:00", også forsøge at parse den. Og problemet er jo, hvis man giver en invalid dato med i construktoren, så vil den kaste en exception.
Avatar billede arne_v Ekspert
21. december 2007 - 04:11 #4
TryParse og saa et array er de 2 mest oplagte.

En mere "eksotisk" løsning:

        public static bool ValidDate(int y, int m, int d)
        {
            DateTime dt = new DateTime(y, m, d - 3);
            return dt.AddDays(3).Day == d;
        }
Avatar billede arne_v Ekspert
21. december 2007 - 04:13 #5
PS: bør kun kaldes for d = 29, 30 og 31 !
Avatar billede krukken Juniormester
21. december 2007 - 16:01 #6
LIgger du et svar?
Avatar billede arne_v Ekspert
21. december 2007 - 16:14 #7
jeps
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