Code archives/Algorithms/Day of Year
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| The code below will return the day of the year for any date, taking leap years into consideration as well. e.g. January 1st will be 1, December 31st will be either 365 or 366, depending on leap years. http://www.xlsior.org | |||||
' Day of the Year
'
' By Marc van den Dikkenberg
'
Strict
Print "Day of the year: "+DayNumber("05 Aug 2007") ' Specific Date
Print "Day of the year: "+DayNumber("") ' Returns Current Date
Function DayNumber(SomeDate:String) ' Date in form: "DD MMM YYYY", e.g. "02 APR 2007"
If SomeDate="" Then
SomeDate = CurrentDate$() ' If no date specified, use today's date
End If
Local Dag:Int[]=[31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31]
Local Maand:String[]=["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"]
Local YearStartPoint:Int=0
Local Jaar:Int=Int(Right$(SomeDate,4))
Local MonthCount:Int=0
Local TotalDays:Int=0
Local TempVar:Int=0
If ((Jaar Mod 4) = 0 And (Jaar Mod 100) <> 0) Or ((Jaar Mod 4) = 0 And (Jaar Mod 400) = 0) Then
' It's a Leap Year
YearStartPoint=12
Else
' It's not a Leap Year
YearStartPoint=0
End If
For TempVar:Int=0 To 11
If Upper(Mid$(SomeDate,4,3))=maand[TempVar] Then
MonthCount:Int=TempVar:Int
Exit
End If
Next
For Tempvar:Int=0 To MonthCount:Int-1
TotalDays:Int=TotalDays:Int+dag[TempVar+YearStartPoint]
Next
TotalDays:Int=TotalDays:Int+Int(Left$(SomeDate,2))
Return TotalDays
End Function |
Comments
None.
Code Archives Forum