by Trent Renshaw (1 Submission)
Category: Math/Dates
Compatability: VB 6.0
Difficulty: Unknown Difficulty
Originally Published: Fri 21st June 2002
Date Added: Mon 8th February 2021
Rating: (1 Votes)
Returns the Gregorian date (dd/mm/yy), for any valid Julian date (yyyyddd).
' Returns the Gregorian date (dd/mm/yy), for any valid Julian date (yyyyddd)
'
' By: Trent Renshaw
' Email: [email protected]
'
' Comments: Use and distribute freely.
'
' Syntax: GDate(yyyyddd)
' Example: GDate(2002147)
'
' Created: 27/05/02 23:45
' Last Modified: 05/06/02 10:50
Dim Year As Integer 'JDate vars
Dim Day As Integer
Dim LeapYear As Boolean
Dim YY As Integer 'GDate vars
Dim MM As Integer
Dim DD As Integer
Dim YYStr As String
Dim MMStr As String
Dim DDStr As String
Year = Left$(JDate, 4)
Day = Mid$(JDate, 5, 3)
YY = Mid$(JDate, 3, 2)
If Int(Year / 4) = (Year / 4) Then LeapYear = True
If LeapYear = True Then
Select Case Day 'Leap year cases
Case Is <= 31 'January
MM = "01"
DD = Mid$(Day, 2, 2)
Case Is <= 60 'February
MM = "02"
DD = Day - 31
Case Is <= 91 'March
MM = "03"
DD = Day - 60
Case Is <= 121 'April
MM = "04"
DD = Day - 91
Case Is <= 152 'May
MM = "05"
DD = Day - 121
Case Is <= 182 'June
MM = "06"
DD = Day - 152
Case Is <= 213 'July
MM = "07"
DD = Day - 182
Case Is <= 244 'August
MM = "08"
DD = Day - 213
Case Is <= 274 'September
MM = "09"
DD = Day - 244
Case Is <= 305 'October
MM = "10"
DD = Day - 274
Case Is <= 335 'November
MM = "11"
DD = Day - 305
Case Is <= 366 'December
MM = "12"
DD = Day - 335
End Select
Else
Select Case Day 'Normal year cases
Case Is <= 31 'January
MM = "01"
DD = Day
Case Is <= 59 'February
MM = "02"
DD = Day - 31
Case Is <= 90 'March
MM = "03"
DD = Day - 59
Case Is <= 120 'April
MM = "04"
DD = Day - 90
Case Is <= 151 'May
MM = "05"
DD = Day - 120
Case Is <= 181 'June
MM = "06"
DD = Day - 151
Case Is <= 212 'July
MM = "07"
DD = Day - 181
Case Is <= 243 'August
MM = "08"
DD = Day - 212
Case Is <= 273 'September
MM = "09"
DD = Day - 243
Case Is <= 304 'October
MM = "10"
DD = Day - 273
Case Is <= 334 'November
MM = "11"
DD = Day - 304
Case Is <= 365 'December
MM = "12"
DD = Day - 334
End Select
End If
YYStr = CStr(YY) 'Convert literal date ints to string
MMStr = CStr(MM)
DDStr = CStr(DD)
If YY < 10 Then YYStr = "0" & YY 'Ensure date is dd/mm/yy not d/m/y
If MM < 10 Then MMStr = "0" & MM
If DD < 10 Then DDStr = "0" & DD
GDate = DDStr & "/" & MMStr & "/" & YYStr 'Concatenate GDate
End Function
No comments have been posted about Returns the Gregorian date (dd/mm/yy), for any valid Julian date (yyyyddd).. Why not be the first to post a comment about Returns the Gregorian date (dd/mm/yy), for any valid Julian date (yyyyddd)..