SUB week1 (dow AS INTEGER, y1 AS LONG, m1 AS INTEGER, d1 AS INTEGER)
m% = m1
y& = y1
IF m% < 3 THEN
y& = y& - 1
m% = m% + 12
END IF
dow = (d1 + (153 * m% - 457) \ 5 + INT(365.25# * y&) - INT(y& * .01) + INT(y& * .0025) + 2) MOD 7
IF dow<0 THEN
dow=dow+7
END IF
END SUB
SUB week2 (dow AS INTEGER, y1 AS LONG, m1 AS INTEGER, d1 AS INTEGER)
m% = m1
y& = y1
IF m% < 3 THEN
y& = y& - 1
m% = m% + 12
END IF
dow = (d1 + (153 * m% - 457) \ 5 + 365 * y& +y& \ 4 - y& \ 100 + y& \ 400 + 2) MOD 7
END SUB
Sub JDtoWeek(jd As Double)
'INPUT: jd = Julian Day Number
'OUTPUT: modifies the caption of label dow
i% = Int(jd + 1.5) Mod 7
If i% < 0 Then i% = i% + 7
dow.Caption = weekname(i%)
End Sub
Last Modified: April 7, 2005