Avatar billede Slettet bruger
21. oktober 2003 - 20:24 Der er 1 kommentar og
1 løsning

Undersøge om uge 53 eksisterer ud fra dato

Hej!

Jeg vil gerne beregne om uge 53 findes i et givent år, følgende ISO-8601 oplysninger skulle kunne bruges:

Ikke skudår:

Uge 53 indeholder altid datoen 3. januar året efter,
men uge 53 eksisterer kun
hvis 27. december var en søndag.  Uge 53 indeholder altid datoen 2. januar året efter,
men uge 53 eksisterer kun
hvis 26. december var en lørdag eller en søndag. 

Skudår:

Uge 53 indeholder altid datoen 2. januar året efter,
men uge 53 eksisterer kun
hvis 26. december var en lørdag eller en søndag.

Og hvordan er det nu liige med skudår?

Her gælder følgende:

Et år er et skudår hvis årstallet er deleligt med 4. Dette gælder dog ikke årstal delelige med 100, bortset fra dem, der er delelige med 400.

Det kan jeg godt klare, men den med uge 53 er jeg lidt lost i...
Avatar billede Slettet bruger
21. oktober 2003 - 21:10 #1
Nåh, men jeg fik regnet mig frem til skudåret, måske er der nogen der vil hjælpe mig til at komme videre med min beregning omkring uge 53? her er skudåret beregnet:

intYear = 2004

'Et år er et skudår hvis årstallet er deleligt med 4. Dette gælder dog ikke årstal delelige med 100, bortset fra dem, der er delelige med 400.

skudaar = 0

If intYear Mod 4 = 0 Then

skudaar = 1

If intYear Mod 100 = 0 Then

skudaar = 0

If intYear Mod 400 = 0 Then

skudaar = 1

Else

skudaar = 0

End If

End If

End If

Response.Write skudaar
Avatar billede Slettet bruger
22. oktober 2003 - 21:28 #2
Jeg fandt ud af det, her er koden hvis nogen skulle få brug for den:

'Et år er et skudår hvis årstallet er deleligt med 4. Dette gælder dog ikke årstal delelige med 100, bortset fra dem, der er delelige med 400.


Function BeregnSkudaar(intYear)
BeregnSkudaar = 0

    If intYear Mod 4 = 0 Then
    BeregnSkudaar = 1

    If intYear Mod 100 = 0 Then
    BeregnSkudaar = 0

    If intYear Mod 400 = 0 Then
    BeregnSkudaar = 1
    Else
    BeregnSkudaar = 0
    End If
    End If
    End If

End Function







Function BeregnUge53(Aar)
BeregnUge53 = 0

skudaar = (BeregnSkudaar(Aar))
'Ikke skudår:
If skudaar = 0 Then
sddec = "27-12-" & Aar
dtmDate2 = datevalue(sddec)
intWeekDay2 = WeekDay(dtmDate2)
ugedag2 = WeekDayName(intWeekDay2)
If ugedag2 = "søndag" Then
'Hvis d. 27 dec. var en søndag skal uge 53 optræde
BeregnUge53 = 1
End If
'Uge 53 indeholder altid datoen 3. januar året efter,
'men uge 53 eksisterer kun
'hvis 27. december var en søndag.
End If


'Skudår:
If skudaar = 1 Then
sddec = "26-12-" & Aar
dtmDate2 = datevalue(sddec)
intWeekDay2 = WeekDay(dtmDate2)
ugedag2 = WeekDayName(intWeekDay2)
If ugedag2 = "lørdag" OR ugedag2 = "søndag" Then
'Hvis d. 26 dec. var en lørdag eller søndag skal uge 53 optræde
BeregnUge53 = 1
End If
'Uge 53 indeholder altid datoen 2. januar året efter,
'men uge 53 eksisterer kun
'hvis 26. december var en lørdag eller en søndag.
End If

End Function

'Du kan beregne om det er skudår ved at kalde med BeregnSkudaar("2004")
'Du kan beregne om uge 53 skal med ved at kalde med (BeregnUge53("2004")
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