Avatar billede troelsm Nybegynder
30. juni 2002 - 03:22 Der er 13 kommentarer og
1 løsning

Kode som danner uge nummer ud fra dato men har 2 fejl

Jeg har følgende kode (se nedenfor) som udregner ugenummer ud fra dato
men jeg kan ikke forstå hvorfor at den regner forkert på følgende datoer
(Den 29-12-2003)
siger den at der er uge nr 53 - men det burde være uge 1
(Den 31-12-2007)
samme problem - den skriver at der er uge nummer : 53 men det burde igen her være 1.

Nogen som kan hjælpe / ved hvorfor ?


[Kode start]
StartAar     = 2002
SlutAar        = 2013

do while StartAar < SlutAar

'Set start dato til 1/1-startÅr
startDato = "01-01-" & startAar
'Lig et år til og find slut dato
slutDato = DateAdd("yyyy",1,startDato)
'udskriv og lig en dag til ad gangen.

do while CDate(startDato) < CDate(slutDato)

  Response.Write "Dato : " & startDato
  Response.Write " Uge nummer : " & DatePart("ww", startDato,vbMonday,vbFirsFourDays) & "<br>"

  startDato = DateAdd("d",1,startDato)

loop
StartAar = StartAar + 1

loop
[Kode slut]
Avatar billede troelsm Nybegynder
30. juni 2002 - 03:24 #1
der skulle selvfølgelig stå

vbFirstFourDays - ikke at det gør nogen forskel.
Avatar billede sif4ever Nybegynder
30. juni 2002 - 03:28 #2
Hvad siger den til den 29-02-09 ?

Hilsner
http://www.dkdebat.dk
Avatar billede troelsm Nybegynder
30. juni 2002 - 03:33 #3
[att : sif4ever]
Ikke ret meget - da den dato ikke findes,

(den 29 februar findes kun i skudår)
Avatar billede sif4ever Nybegynder
30. juni 2002 - 03:40 #4
Godt fanget...
Avatar billede colabund Nybegynder
30. juni 2002 - 08:54 #5
>>troelsm: Naturligvis har du ikke uge 1 i december måned...
  Hvad nr. har den første uge i 2003???
    Men hvad siger dit program til 01-01-2004, der skal svaret være "1".
      Fidusen er, at hvis det NYE års første uge har 4 eller flere dage, starter uge 1 1-1-xx, hvis den første uge har 3 eller færre dage, fortsætter forrige års sidste ugenummer de (3 eller færre) dage ind i januar, således at uge 1 begynder den første søndag i januar.
Avatar billede colabund Nybegynder
30. juni 2002 - 08:56 #6
Så jeg tror, fejlen ligger i "30cm-syndromet" (undskyld)  :)
Avatar billede troelsm Nybegynder
30. juni 2002 - 10:44 #7
Det er jeg desværre ikke enig med dig i colabund !

Den 31-12-2001 var og er første dag i uge 1
ligeledes er den 30-12-2002 og 31-12-2002 en del af uge 1 sammen med 1,2,3,4 og 5 i 01-03
Prøv selv at kigge i en officiel kalender (fx mayland)

Som sagt så gør den det også rigtigt pånær (ihverfald intil 2012) det 2 ovennævnte datoer fx den 29-12-2003 som den siger tilhører uge 53 (Skulle være 1 som den også siger at 30-12-2003 er i.

troels
Avatar billede colabund Nybegynder
30. juni 2002 - 11:24 #8
Hmm, min kalender siger det samme, men jeg tror, der er tale om en "gennemført" fejl, det er da ulogisk med to tirsdage i uge 1....
  Læste engang (men kan desv. ikke huske hvor), hvordan ugerne omkring årsskifte bliver nummereret korrekt.
    Vil indtil videre mene, at 30-12-2002 og 31-12-2002 bør være uge 53, men er villig til underkastelse....
        Er desv. nødt til at smutte indtil videre, kigger ind senere.
Avatar billede troelsm Nybegynder
30. juni 2002 - 11:39 #10
En dag har samme ugenr som torsdagen i samme uge

det er hvad jeg har kunnet finde og det passer også på alle datoer, pånær de 2 jeg lige nævner som programstump mener skulle være uge 53
Avatar billede eagleeye Praktikant
30. juni 2002 - 12:02 #11
Hvis den skriver uge 53 ved 30-12-2003, jeg har kopiret din kode og hvis man har skrevet forkert i vbFirsFourDays altså uden t laver komme den fejl, den kommer ikke med en script fejl som man kunne ønske.

Prøv at tjekke i din kode at der står:  vbFirstFourDays
Efter jeg rettede det i koden blev 30-12-2002 og 31-12-2002 en del af uge 1.
Avatar billede troelsm Nybegynder
30. juni 2002 - 12:40 #12
Hejsa Eagleeye,
jeg har også 30-12-2002 og 31-12-2002 som en del af uge 1,
det er den 29-12-2003 den skriver uge 53 (uanset om jeg staver first rigtigt eller korrekt.
Avatar billede troelsm Nybegynder
13. juli 2002 - 12:15 #13
lukning
Avatar billede eagleeye Praktikant
17. juli 2002 - 09:44 #14
Prøv at se her, det er et problem i en MS DLL som bruges til at beregne ugen.

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q200299
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
Kurser inden for grundlæggende programmering

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