Function SidsteDagIMaaned(dato) dato = CDate(dato) maaned = Month(dato) Select Case maaned Case Is = 1, 3, 5, 7, 8, 10, 12 SidsteDagIMaaned = 31 Case Is = 4, 6, 9, 11 SidsteDagIMaaned = 30 Case Is = 2 If Year(Date) Mod 4 = 0 And Left(Year(Date), 2) Mod 4 <> 0 Then SidsteDagIMaaned = 29 Else SidsteDagIMaaned = 30 End If End Select
End Function
Har du datoen, du vil undersøge i A1, skriver du så fx i B1 =Sidstedagimaaned(a1) og får fx i dag svaret 30.
Selv tak. Men der iøvrigt en fejl i den sidste case, den skal no se således ud, for at virke helt rigtig:
Case Is = 2 If Year(Date) Mod 4 = 0 And Right(Year(Date), 2) = 0 And Left(Year(Date), 2) Mod 4 <> 0 Then SidsteDagIMaaned = 29 Else SidsteDagIMaaned = 30 End If
Hvis tillægsmodulet Analysis Toolpak er installeret burde SLUT.PÅ.MÅNED (EOMONTH) kunne give det korrekte svar. A1 = 01-02-2003 =SLUT.PÅ.MÅNED(A1; 0) giver 28-02-2003 =DAG(SLUT.PÅ.MÅNED(A1; 0)) giver 28
år 2000 var faktisk et skudår Reglen er: Hvert 4. år er et skudår medmindre 100 går op i det. Dog hvis 400 går op i det der altid et skud år
altså 2000 var et skudår (også i følge windows kalender)
Synes godt om
Ny brugerNybegynder
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.