MethodPDF Available

Date Algorithms

Authors:
  • Aesir Research

Abstract and Figures

A guide to computer programmers interested in implementing date algorithms in a variety of languages and on a wide range of hardware platforms. It includes new algorithms, mathematical proofs for all algorithms, and some execution speed results.
Content may be subject to copyright.
164
Date Algorithms




! "#$#%#&'(# $))
!*
$#""* +#,!
'" -,!-
."%,!/
(""*0""%
.$("#%$")
Table of Contents
)1"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))-
)2#""3))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
)45#"5#36%))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
)45#"5#36%# 3$#+))))))))))))))))))))))))))))))))))))))))))))))))))7
)5#36%# 8)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))435#3%))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))5#35#3%)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)-4"5#36%1+#))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)-))2 %"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)-))6)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)-)435#36%1+#9:+#))))))))))))))))))))))))))))))))))))))))))))))))))))))
)-)5#"5#36%1+#9:+#))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
-)5#36%4")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
-)# 3$#+))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
-))2 3)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
-))3 ;)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
-)))$"+++:)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
-)))$"+++:))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)))-3+/++:))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)))/++#"/++:" )))))))))))))))))))))))))))))))))
-)))#$++# " ))))))))))))))))))))))))))))))))))))))))))))))))))))))))
264
-))-3 3 ;))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))/3  )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))3 3)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)5#36%5#3# 3$#+))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))2 3)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))3 ;)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))-
-))-3  "3))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
-)-5#36%5#"43# 8))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
-)-)5#3%43))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
-)-)5#3%5#3)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)/5#36%4"5#31+#)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)/)2 "6))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)/))2 %"))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)/))6)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)/)5#36%431+#9:+#))))))))))))))))))))))))))))))))))))))))))))))))))))))-
-)/)-5#36%5#"1+#9:+#)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))-/
-)/)/1"#3# )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))-
-)/)/)#5#36%4"# ))))))))))))))))))))))))))))))))))))))))))))))))))))))-
-)/)/)<.12'5#36%4"+#)))))))))))))))))))))-
/)""5#3))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
)3)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
)3# ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
)31+#9:+#))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/-
7)1$3))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))//
7)1$3# )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))//
7)1$31+#9:+#)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
7))6))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
7))36%43))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
)3 0=))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)3 0=# )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)30=1+#))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)3>3)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)?"#@536))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)536?"#@))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))-
)""#)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
)A5#36%43# )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
364
   )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
  ")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
)9:+#.++#45#36%# )))))))))))))))))))))))))))))))))))))))7
)-"B1C-7)D)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)/-#")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
)$())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))7
0. Introduction
' " #"%#>"++"
+#"# $#">" ">+#)#  
## $"" + #>++# # > 
+)&>$1>#"=  " #  =>%##
""#> %" ")3>####"
"E ++  %"$""+$"##
+$ " )
!#""?5#4"3@""+""% #  
+"%+ %"$+%#">  #
#")8:+#">" #"%5#2/"##>
2A"  #+#>++#"#"%9+> "#+
  F/)!#""#"   ""#"$
> ##"#">""##"#"
+#+")6 +#"% # )' ##>
"*
' % " %)' +")2)
5#"%++#"% % #">$"">+#"#
#  5##+#%++#"##%## "5#")
4"%++#"% 4#">$"##  
4#"#+#%++#"##%##4")
464
1. Calendars and Dates
398161'16*' Julian calendar #"%# "%5#2/7)2)? /
 $E"$%"@)1 #" :"-7"
:+$/ >  -77")#$# %""%-7)"#
%"# #=##")3 5#2#"##"Julian
dates"%"> 5#3%)
398161'16*' Gregorian calendar "5##">  :"-7":+
#+>  -77")(+ :#"$%#%/:+
>  #%"$%#%/)'  #"")3 4
#"##"Gregorian dates)
398161'16*' Julian proleptic calendar#""%++# # 5##"
%=$% 5##">$")
398161'16*' Rata Die %"+" %"#$%"
3%- )' 5 3")
398161'16*' Julian Day NumberJulian DayJD+# %
""" G$#'?4> @5 
/>  $ 5#+#+#")' " ">
##++"%5+ .#E%>""% 
")#" $H$##"" %6$%//-
>"" 4#"#>++#")5#"5#36%"
%"> 5#")
1 53%:+"+ %> #" 
 ")'%#$:+#)
'%#
Gregorian Date Time JD number
3%-  ///-)
5  "?I" @ ///-)
5  ////)
5 +" ////
5 " 5 ////)
5#"" 5##").##4"" 4#")
'%# > >5#""4"# 5#36%)'  ""
$ %#+ 5#"43)1""5#" 
5#36%$ #>  "J535#")J1 """
4" 5#36%$ #>  "J534")J
6% J3J#+" %" )' > 5#36%
>  "+# ##>")' "% /)+
" 53% "E )
564
'%#
Year Month Day JD for
Julian date
JD for
Gregorian
date
Comment
/-  /) -) ) ""#53%4
/-  /) -) ) 4"53
/-  ) -) ) ""#53"?" @
/  ) ) -) ""#"%53
/  ) ) -) 5#"53
/  ) ) -) ""#53"
  ) ) ) ' ")2)
  ) 7) ) 3K-7
 - ) ) ) 3K-
  -) /) //) 3K
  ) /-) /) 3K
  /) ) /) #"%4
  ) ) 7) "4
/  -) --/) --/) +#
  ) /) /) ""5#3)
  ) /-) /)
  ) /-) /-)   
  ) //7) //) G:
  ) ///) ///-) 2?3.@
' 5#36%""#$ 5#+#+#" %/
 #" 5#2#" 7)" 5#36%
)' #""  $#+$/)6 "##>
' "%/?5#2#"@ " 4?""8"
% 4#"@"537))6## " 4
#""" 4#"##+++#)1+%# 
 5#2#" 4 42#"% 4)
G 5#36%$" +%#% $"%
 #+%#)
664
2. Gregorian or Julian date to Julian Day
Number
2.1 Gregorian or Julian date to Julian Day Number -
Algorithm Development
# "$#+%% %)2$4#""+# 
 %#$ E)1 $"#$+# 4
#"  "%%)
'  %"%>##%$" 5"8%"" -
"/   ")5"8%;$"   
;)1 >"">     ?"" -@"
 #  8% ##>""" /)' ++ 
  :"#+ " J)J>##% +#
 ## %#+E+#""+# 
>  # % %" +" )
. %  5#"%""#$ ")8%#
%  )53) " 4#")' 
 )53)" 5#36%" +")
' )%""" "%?@ 53)6 >$ "
 4#""$   %"% 4#">$")
' >=# "+ # 4#""" 
4+#+#")
6: " ")' #" ##>*
;L-7FB;C/DB;CDFB;C/D
' :+"#" #  -7"+#:"#+
> #+$/:+# #"$%#%/)&B:D
 greatest integer function B:D   :)' BDKB)DK
BDKB)DK"B-DK-)8+$%  >  
#+%)
6 #  #+ %"#$  E%
"")#$  E #+/"8%/+ 
% -)' :+B;CD####+> #B;C/D
""%= "$%#%/)
8## %"  + +" ")' ##>$
 "" :+##*
764
864
month days in previous months
-
/ -
7
7 

-
/
 /
 /
 
- -7
/ --
.##  :+8% --"# + #
++:%"" #+ $#$"$ 
)%  >##>=+#%:""#
%>##% > $ %#%##" >)
' >##= *
81M?LMF@
> 
MK %
K #+ #
K ;+ #"
81M?@ )
6>81M?@$  $#MF +" 81M$#
$#MF;+%#" $#;F)' $# ;
%+ "%% #"#+# > #   ## 
$#>  $+%#")&>$"#>++
 "> H+   $#)3 >  #> :
#++?/-@?7@ #+K-)7";+K))' #> 
#++?/--@?-@ #+K-)//";+K
))' >#?)------------7/)----------@"1##  +$
+ >##%#>  +"$#    +"= 
#+-)//-)7)4$#+ $#/)----------L
)------------7%" ;+)&>$ >####% ;+
$# >=>##)
8+#+$>+%%# #+-)7%
"" #"%"#+" )1#+K-)7 #
   +$ ;+)777777777777% # ;+$# >=
>##)' ;+$#)/)#   $#)##%
964
= #>#"  +#+ " >#"
+" ""#)'  
81M?-)7LM)/@
%"+"""$#)' #%$" 
$)8:+#
81M?-)7LM)/@
KF81M?-)7LM)/F@
KF81M?-)7LMF-)7@
KF81M?-)7L?MF@@
81M?-)7LM)/@H$#?-L/@N-CK-)7"/CK)/)
 #+%#" % " %"
"%"%$).++:+#   $ ?LMF@N-  %
" %++#"$). #+
-)//-)7C-#% )' +# 
-)//L-K)///-)7L-K))' %$ )
'  #+)C-K-)-)' #++#  ;+ )7
)-)' % )7L-K))-L-K>  #
 +?@:#""%)'     #$)
'  #$#*?L@N-%" H")&JNJ 
>  +#"$>    )' +%#
%$%#JJ $#-  #>+$)
1064
2.2 Julian Day Number - Algorithm Forms
2.2.1 Gregorian Date to Julian Day number
' +$# "$#+I ##>## $
435#36%)1 "+*
[x]K  ":":)8:+#B)DK)' ##" 
#?:+#2C2FF@)
INT(x)KB:DOOOOOO6'9*+# $"")
FIX(x)K %:> )8:+#81M?)@K
x\yK81M?:C@
.'92## $#PONE ##> "*
) PK;F?/@N
) 18Q-'&96PK;9(.9PK;
-) +  "%+#"# % 
 >## >   58%)
.'92## $#8ONE ##> "*
) 8 $#$":"%)' $ $#-7---7-/
//)'  "##  ""=#+
+#)
) 18Q-'&96KF
8K?-L/@N
-) 18Q-'&96KF
8K?L@N-
' ##>  "$)
/) 8K?L?L??/@N@@@N-
' # "18" "$ )
) 1# ""
18Q-'&96KF
8K81M?-)7L)/@KF81M?-)7L?F@@
%"#  # ###>"="+) 
+%#"%" +$)6 --)7L)/#>
+$" 81M %")
1164
.'9-' 5#36%4"
3F8F-7LPFBPC/DBPCDFBPC/DF)
' :+$#"4"$+#+4"#" $
)
8:+# ##>H%"## 5#36%4"*
18Q-'&96
OOOOOOKF
OOOOOO;K;
96318
53K3F?-L/@NF-7L;FB;C/DB;CDFB;C/DF)
2.2.2 Julian Date to Julian Day number
' >" 4"5#36%#  "%"
"+"5#"5#36%# )8 %"  
5#")7)  ))'  ?5#"@
"%>  > """7)+" ""53))
' ""#+$/":#"  
"$%#%/)' #++#-7L;FB;C/D>  :+"
B-7L;FB;C/DDKB-7)L;D)' 5#36%5#"
3F8F-7LPFBPC/DF7)
>  $#38"P%)8:+# ##>H%"## 
5#36%5#"*
18Q-'&96
OOOOOOKF
OOOOOO;K;
96318
53K3F?-L/@NF-7L;FB;C/DF7)
1264
2.3 Gregorian date to Julian Day Number - Implementation
2.3.0.1 Choices to be made
' ##>" $%""+#*
"+" 45#2#"R
0 "%++"R
0 %>"E>##%"R
1 $#%## R
1# $#%#"H"R
1"#: J18C'&96J++"R
2.3.0.2 Notation
[x]K  ":":)8:+#B)DK)' ##" #
?:+#2C2FF@)
INT(x)KB:D6'9*+# $"")
FIX(x)K %:> )8:+#81M?)@K
x\yK81M?:C@
2.3.1 Gregorian Date to Julian Day Number Implementation
Examples
) 843+""3?#%@ ?> 5K@"
;?@ 5#36%53%##"##>*
18Q-'&96
OOOOOOKF
OOOOOO;K;
96318
53K3F?-L/@NF-7L;FB;C/DB;CDFB;C/DF)
296'.*
o'  ++"##"% >"E +#)
o#  ?-L/@N#:+":"##
+#)
o.##+# #)
) <.121+#%*
1364
.GI"?I".3G(9.(64.16'949".3G(9@
SKA"A"++
TKA"A" ++
18TQ-'&96A 58%
OOOOOOTKTFA5K-8%K/
OOOOOOSKSA +$
96318A 58%
I"K"UF?-LT/@NF16'?-7)ULS@16'?SL)U@F16'?SL)U@F)U
963.G
-) 1Astronomical Algorithms+75$ # ?##@
18Q-'&96
OOOOOOKF
OOOOOO;K;
96318
53K81M?-7)?;F/7@@F81M?-)7?F@@F3F81M?;C@F81M?81M?;C@C/@/)
.-7)L/7K)
"-)7?F@@K81M?-)7L)/@F
"81M?81M?C@C/@K81M?;C/@
")FF/)K)
 H$#"$"# +$"" +$)
296'.*
o' # #$#"$;)1%"%#$;%
+# 81M>  )
o' /7>"" +:+ >#"##>
 53%##"$5#3)1#+# # 
4")
o' -)7""-)7%")' 
+$"$ -)7 >  >")
o'  "%
81M?81M?;C@C/@  81M?;C/@
H$##
K81M?;C@
"F81M?C/@ $#B;CDFB;C/D
#C/+" +)
/) 8" 4#"The Explanatory Supplement to the Astronomical
Almanac+7/$ $# 5#36%43
6$%-/-*
1464
53K?/7L?;F/F?/@N@@N/F?-7L?L??/@N@@@N?-L??;F/F?/@N@N
@@N/F3-OOO
& :+*
?/@N
"+# "# ;" %##:+"*
18Q-'&96
OOOOOOKF
OOOOOO;K;
96318
0    $#";
53K?/7L?;F/@@N/F?-7L?@@N?-L??;F/@N@@N/F3-
;$?16'"81M ##>@)' ##>
"% > #"*
) ?/7L?;F/@@N/K81M?-7)L;@F-
) -7L?@@NK81M?-)-------L)77777777@F-
-) ?-L??;F/@N@@N/K81M?;C@F81M?;C/@-7
  #%>
53K81M?-7)L;@F81M?-)-------L)77777777@81M?;C@F81M?;C/@F3-
-7F-F-
K81M?-7)L;@F81M?-)-------L)77777777@81M?;C@F81M?;C/@F3F
>  > > "$#+% 53+$""  "+
" $)
296'.*
o' # $#"4# /)
o'  +"")'  53 +"
"# ##>")
o' /"/>""  81M+" 
#$4"##/)
o116'$#%# $
16'?-7)L;@-7L;F16'?;C/@ # %  
?/7L?;F/@@N/
 )
o116'$#%# $
16'?;C@F16'?;C/@%  ?-L??;F/@N@@N/
1564
)  2"9:+#4536
LLL06164LLL6 
  CC+# " 16'?@" 
""
  ?@+# 81M?@" ")
"4'536?3;@*
JJJ45#36%2##JJJ
Q-*
FK
;K
?3F??-L/@C@F-7L;F;CC/;CCF;CC/F)@
2.3.2 Julian date to Julian Day Number Implementation
Examples
) 85#"+""3?#%@ ?> 5K@";
?@ 5#36%53%##"##>*
18Q-'&96
OOOOOOKF
OOOOOO;K;
96318
53K3F?-L/@NF-7L;FB;C/DF7)
296'.*
o'  ++"##"% >"E +#)
o#  ?-L/@N#:+":"##
+#)
o.##+# #)
) <.121+#%*
.GI"I?I".3G(9.(64.16'949".3G(9@
ALLL06164LLLL1+35#6'4
SKA"A"++
TKA"A" ++
18TQ-'&96A 58%
OOOOOOTKTFA5K-8%K/
OOOOOOSKSA +$
96318A 58%
I"K"UF?-LT/@NF16'?-7)ULS@F7)U
963.G
1664
-) 1Astronomical Algorithms+75$ # 5#3%
5#"?##@
18Q-'&96
OOOOOOKF
OOOOOO;K;
96318
53K81M?-7)?;F/7@@F81M?-)7?F@@F3/)
.-7)L/7K)
"-)7?F@@K81M?-)7L)/@F
")F/)K7)
 H$#"$"# +$"" # /7)' "
 53$53K)"5/ 5#2#")
296'.*
o' # #$#";# /7?+%#"I5
"8%@)'  > ?;F/7@   81M
#>+$ "";$#)' # %"
%#$;%+# 81M :+81M?-7)?;F
/7@@>  ) " +# 
/7%"+"> )
o' -)7""-)7%")' 
+$"$ -)7 >  >")
1764
3. Julian Day Number to Gregorian date
3.1 Algorithm Development
' %*
) 2$ 5#36% %"%")
) 3 % %")
-) 2## %" ")
/) 3  %+"% ")
) 2## %"  ")
3.1.1 Choosing a Base Date
# "$#+%% %" ">##%#$" #
$5#36%).$>##%4" %">##% 
4E)
' 5#36%$" %"%"  E)' 
#"> 5"8% -"/   ")' ++
  :"#+ " J)J>##% 
+# ## %#+E+#""+# 
>  # %" +"   %)
(3% "#)4;#+;3/K";3K 
#H" ;3/K)1  "5%"
+>" %"%)8:+#8%;%
5;% ).## :""#+
;#"%  4#+%++#";F)
8'%#% "$5#36% %" 
 E 4#")%%")1"%on  
E 4#")>#"%%")
3.1.2 Determining the Year
0  %">#$%   %##>  
$+""")4$; %"% "
 "+"+ >#+##")84" %""
% ##-7L;FB;C/DB;CDFB;C/D> B:D )& :
#+""""% "#"% +#8% +"
)
3.1.2.1 Average days per year approximation
' %""%+;#  H#-7L;FB;C/DB;CDFB;C/D
++:#H#-7L;F;C/;CF;C/K;L?-7FC/CFC/@K;L-7)/ 
1864
  $#%# )13 "%;>
$#  -7?-77#+@  =";$
-7L;FB;C/DB;CDFB;C/DF3")
; %++:#
16'??-7L;FB;C/DB;CDFB;C/DF3@C-7)/@
9:  ++:*
16'??-7L;FB;C/DB;CDFB;C/DF3@C-7)/@
K16'??-7C-7)/@L;F?B;C/DB;CDFB;C/DF3@C-7)/@
K16'??-7C-7)/@L;F?B;C/DB;CDFB;C/DF3@C-7)/F?;C/;CF;C/@C-7)/?;C/
;CF;C/@C-7)/@
K16'??-7L;@C-7)/F?B;C/DB;CDFB;C/DF3@C-7)/F?;C/;CF;C/@C-7)/?;C/
;CF;C/@C-7)/@
K16'??-7L;F?;C/;CF;C/@@C-7)/F?B;C/DB;CDFB;C/D?;C/;CF;C/@F
3@C-7)/@
K16'??-7)/L;@C-7)/F?B;C/D;C/B;CDF;CFB;C/D;C/F3@C-7)/@
K16'?;F?B;C/D;C/B;CDF;CFB;C/D;C/F3@C-7)/@
K;F16'??B;C/D;C/B;CDF;CFB;C/D;C/F3@C-7)/@
' "%>;" ++:"H#
16'??B;C/D;C/B;CDF;CFB;C/D;C/F3@C-7)/@
6  "  $##+#/""";,))# $#;
"#/> $#%>"-"%:">  $#")
G#  $#)-/-;"#/K--?
#+@"3K)'  :$#)-/7;"#/K?
#+@"3K-77). "%>:"$# 
%%"=E)
' $# #"%+#"++#" %"
"  %"%")1" ++ = " 
 %##+"% + %##/+")' ##> 
$#B;CD"B;C/D%#" ""  %
% $")
3.1.2.2 Average days per century approximation
' %## %" $">##>%"")
(;% ? @$")' B;CD %##
" $#%""$ %"%>%""). %##
%""$ "%"" -7)/L "+
" "%>B;CD"
1964
16'?16'??-7L;FB;C/DB;CDFB;C/DF3@C-7)/@C@
K16'??-7L;FB;C/DB;CDFB;C/DF3@C?L-7)/@@
1+# "H#
B;CDF??-7L;FB;C/DB;CDFB;C/DF3@C?L-7)/@@
:")
8  "  $##+#/""";,))# 
$#;"#/> $#%>"-"%:")' "
" $#)7/7////-> ;"/K-?#+@
3K)'  :$#)> ;"/K-?#+@
3K-77)1"++:%$#"  $$#  
H#"#  ++# +"#E)' 
%"%%V*
??-7L;FB;C/DB;CDFB;C/DF3V@C?L-7)/@@
' H
VC?L-7)/@W))
  "A:").#$V
VW)7/7/7
' $# %""## E)' 
VC?L-7)/@Q)7/7////-
"#$V
VQ)77/
' 
)7/7/7QVQ)77/
' 
B;CDK16'??-7L;FB;C/DB;CDFB;C/DF3V@C?L-7)/@@
> 
)7/7/7QVQ)77/
3.1.2.3 Days per 400 years approximation
#"##$#B;C/D
K16'??-7L;FB;C/DB;CDFB;C/DF3V@C?/L-7)/@@
2064
> 
)7QVQ
&>$B;CD %""BB;CDC/DKB;C/D%###")
3.1.2.4 Application of century and 400 year approximations to determine
the year
.+++V% ="/++::#
 "
-7L;FB;C/DB;CDFB;C/DF3
%$"
-7L;FB;C/DF3
%""$#B;CD"%$#B;C/D)=>";$
-7L;FB;C/DF3
' %" ++:
B?-7L;FB;C/DF3@C-7)D
KB?-7L;F)L;)L;FB;C/DF3@C-7)D
KB?-7)L;)L;FB;C/DF3@C-7)D
K;FB?B;C/D;C/F3@C-7)D
9: 
?B;C/D;C/F3@C-7)
$#  )7//777- % #+""#+
")' :#+-"-77)'  A$#""E
>  ++#" $#V%"*
?B;C/D;C/F3V@C-7)
> 
QVQ-7)L)7//777-K)
3.1.2.5 Alternative application of the century to determine the year
 %## $%"" %%"$ "
$## " $#>##H %##+)
1 >"%
-7)/LLB;CD
2164
 ")1$%#J1J+ %"> ?
  " ##$#>%"#$ "@ 
16'?1C-7)@KB1C-7)D
$ %:+> 1#+#/)0 1#+#/  $#+
+" #"#"#+")1 1:#"$%#%-7)?  
"E@% $##  H)1% >  *
B1C?-7)FC/@DKB1C-7)D
+$""1#+#/"# -7)L"
1#+#/ 
B1C-7)DKB1C?-7)FC/@DF
' B1C?-7)FC/@D  H)
3.1.3 Determining the Day of the Year
1P %"%";  "%""  4
2#" >##%-7)L;B;CDFB;C/D"+5;"
3KP16'?-7)L;B;CDFB;C/D@
> 3 "%> ;4")
6  +##4"
-7L;FB;C/DF3
%##"  "%3%##"%%-7)L;)
3.1.4 Determining the Month
' %"  +  ">"$ "%
  "A)0 "" :+##*
days in previous months month
 -
- /
7 
 7
 
- 
/ 
/ 
/ 
2264
 
-7 -
-- /
.##  :+8% --"# + #
++:%"" #+$"$ )
%  >##>=+#% :""#%
>##% > $ %#%##" >)
' >##= *
81M?LMF@
> 
MK"%
K #+ #
K ;+ #"
81M?@ )
6>81M?@$  $#MF  $ #$#
;+%#" $#;F)' $# M%
+ "%% #>#"%"#+# > H"#>#"  
##  $#>  $+%#")&>$A"#
>++ "> H+   $#)3$#
  #> :#++?-@?--/@ #+)----";
+K)77-/7)' #> #+?7@?-/@ #+
K)-7-7//";+K)/7)' >#?/)-----------
)------------/7@"1##  +$+ >##%# +>  +"
$#   +"= #+)-7-7//
)----)4$#+ $#
)------------/7L/)-----------
%" ;+)&>$ >####% ;+$# >=>##)
8:+##+)-777 ;+)//--
)77/7/)
' %"#= *
?MF@N2
> "2)1+###$#2"$#2 +>>
 "  "$#"%"% ). +%#$#"+#"
 ##>%#*
2364
C A B range (value of upper bound can not be used)
- /)/7)
-7  )-)
-7  -/
- - 
7-/ - ///
-7  7
-7  7/-
7-7 / /
7-7 / 7-
7-7 / 77
7-7 /- 7---
3.1.5 Determining the Day
  % %"" "%##"%% %
" + )' >## >  $ %"
+ )' >:"+# "$#+$4
5#3 +"5#3%">##%+"" )
3.2 Julian Day Number to Julian Date - Algorithm
Development
3.2.1 Choosing a Base Date
# "$#+%% %" ">##%#$" #
$5#36%).$>##%5#" %">##% 5#
E)
' 5#36%$" %"%"  E)' 
#"> 5"8% -"/   ")' ++
  :"#+ " J)J>##% 
+# ## %#+E+#""+# 
>  # %" +"   %)
(3% "#)5#;#+;3/K)1 
 " +>" 5)8:+#8%;
%5;% ).## 
:""#+;#"%  5##+%
++#";F)
2464
8'%#% "$5#36% %" 
 E 5##")%%")1"%on  
E 5#7)>#"%%")
3.2.2 Determining the Year
0  %">#$%   %##>  
$+""")4$; %"-7L;FB;C/DK
B-7)L;D> B:D )& :#+""""% "
#"% +#8% +")
1P %"%";  "%"" 
3KP-7)L;
>##% "%> ;5#'")' %""%+
;#  H#-7L;FB;C/D++:#H#-7L;F;C/K-7)/L; 
  $#%# )13 "%;> $#
  -7?-77#+@  =";$
-7L;FB;C/DF3")
; %++:#
16'??-7L;FB;C/DF3@C-7)@
9:  ++:*
16'??-7L;FB;C/DF3@C-7)@K16'??-7L;FB;C/DF3@C-7)@
KB?-7L;F)L;)L;FB;C/DF3@C-7)D
KB?-7)L;)L;FB;C/DF3@C-7)D
K;FB?B;C/D;C/F3@C-7)D
9: 
?B;C/D;C/F3@C-7)
$#  )7//777- % #+""#+
")' :#+-"-77)'  A$#""E
>  ++#" $#V%"*
?B;C/D;C/F3V@C-7)
> 
QVQ-7)L)7//777-K)
2564
3.2.3 Determining the Month and Day
  %"" +""  "":#  
"%" +$$5#36%4")
3.3 Julian Day Number to Julian and Gregorian Date -
Algorithm Forms
3.3.1 Julian Day number to Gregorian Date
' +$# "$#+I ##>## $
5#36%43)1 "+*
[x]K  ":":)8:+#B)DK)' ##" 
#?:+#2C2FF@)
INT(x)KB:DOOOOOO6'9*+# $"")
FIX(x)K %:> )8:+#81M?)@K
x\yK81M?:C@
.'9(53% 5#36%)2##
PK16'?53)@
K #+53)K?53)@P
.'92## $#>   %##*
K16'?PV@C?-7/)@@
> )7/7/7QVQ)77/
.'9-2## ">  > #? 5#2#"@%""%="$"
 42#")' $# %")
KPVF16'?C/@
> QVQ)
?1$=VKVK))@
.'9/2## $#; #">  *
;K16'?C-7)@
2664
.'92## $# " ONE ##>*
) 2KPF16'?C/@16'?-7)L;@
) 2K81M?16'?-7)L;@@F
' +##$#>  #"+
%" ?16'?-7)L;@@#> $#+))1 
#
2K16'?-7)L;@
> 2"#)
.'972## $#   ONE ##>*
) K81M??L2F/7@C-@
) K81M??-L2F/@C7-/@
?6 7-/X/" "$%+#">   % %
+)@
-) K81M??/L2F@C7-7@
?6 7-7X7" %+#"%= ++7%-%%)@
/) K81M?V-L2F)------------/7V-L/)-----------@
> V-K)-7-7//)----
.'92## $#8>   %" +"  
ONE ##> "*
) 8 $#$":"%)' $ $#-7-///
-7--)? $# -  /)@'  "##  "
"=#++#)
) 8K?-L/@N
-) 8K?L@N-
' ##>  "$)
/) 1# ""
8K81M?-)7L)/@KF81M?-)7L?F@@
%"#  # ###>"="+) 
+%#"%" +$)6 --)7L)/#>
+$)9 81M %")
2764
.'9' 4"A"  
3K28F
.'92$  "#"5ONE ##> "*
) 1W 
OOOOOOO;K;F
OOOOOOOK
"
) ;K;F81M?C-@
KL81M?C-@
' 4" 
;K;
 K
' ##$#"5#36%#"$536"+"4"?
+%#+#+4"@)
9:+#
' ##>H##4; ""35#36%*
PK16'?53)@ +
K53)P +
4KP) "#+
K16'?4C-7/)@ +
K16'?C/@ ++-
K16'??F4@C-7)@ ++-"+/
2KFP16'?-7)L@ +
 K81M??L2F/7@C-@ +7
"K281M??-L /@C@F +"
18 W'&96 +
OOOOOOOKF +
OOOOOOO K  +
96318 +
2864
3.3.2 Julian Day number to Julian Date
' +$# "$#+I ##>## $
5#36%5#3)1 "+*
[x]K  ":":)8:+#B)DK)' ##" 
#?:+#2C2FF@)
INT(x)KB:DOOOOOO6'9*+# $"")
FIX(x)K %:> )8:+#B)DK
x\yK81M?:C@
.'9(53% 5#36%)2##
PK16'?537)@
K #+537)K?537)@P
.'92## $#; #">  *
;K16'??PV@C-7)@
> QVQ)
.'9-2## $# " *
2KP16'?-7)L;@
.'9/2## $#   ONE ##>*
) K81M??L2F/7@C-@
) K81M??-L2F/@C7-/@
?6 7-/X/" "$%+#">   % %
+)@
-) K81M??/L2F@C7-7@
?6 7-7X7" %+#"%= ++7%-%%)@
/) K81M?V-L2F)------------/7V-L/)-----------@
> V-K)-7-7//)----
2964
.'92## $#8>   %" +"  
ONE ##> "*
) 8 $#$":"%)' $ $#-7-///
-7--)? $# -  /)@'  "##  "
"=#++#)
) 8K?-L/@N
-) 8K?L@N-
' ##>  "$)
/) 1# ""
8K81M?-)7L)/@KF81M?-)7L?F@@
%"#  # ###>"="+) 
+%#"%" +$)6 --)7L)/#>
+$)9 81M %")
.'97' 5#"A"  
3K28F
.'92$  "#"5ONE ##> "*
) 1W 
OOOOOOO;K;F
OOOOOOOK
"
) ;K;F81M?C-@
KL81M?C-@
' 5#" 
;K;
 K
' ##$#"5#36%#"$536"+"5#"?
+%#+#+5#"@)
3064
9:+#
' ##>H##5#; ""35#36%*
PK16'?537)@ +
K537)P +
K16'??P)@C-7)@ +
2KP16'?-7)L@ +-
 K81M??L2F/7@C-@ +/
"K281M??-L /@C@F +"7
18 W'&96 +
OOOOOOOKF +
OOOOOOO K  +
96318 +
3.4 Julian Day Number to Gregorian and Julian Dates -
Implementation
3.4.1 Choices and Notation
3.4.1.1 Choices to be made
' ##>" $%""+#*
"+" 45#2#"R
0 "%++"R
0 %>"E>##%"R
1 $#%## R
1# $#%#"H"R
1"#: J18C'&96J++"R
3.4.1.2 Notation
[x]K  ":":)8:+#B)DK)' ##" #
?:+#2C2FF@)
INT(x)KB:D6'9*+# $"")
FIX(x)K %:> )8:+#81M?)@K
x\yK81M?:C@
3164
3.4.2 Julian Day Number to Gregorian Date Implementation
Examples
) ' ##>H##4; ""35#36%53)
1# )
PK16'?53)@
K53)P
4KP)
K16'?4C-7/)@
K16'?C/@
K16'??F4@C-7)@
2KFP16'?-7)L@
 K81M??L2F/7@C-@
"K281M??-L /@C@F
18 W'&96
OOOOOOOKF
OOOOOOO K 
96318
296'.*
o'  ++"##"% >"E +#)
o#  81M??L2F/7@C-@"81M??-L/@C@#:+ 
":"##+#)
o.##+#>  #++ 
#)#> + +#)
) ' ##>H##4; ""35#36%53)
1 :+ $#53"3 5#36%%
#)
PK16'?53)@
K53)P
&KLP
K16'?&C-7/@
K16'?C/@
K16'??LF&@C-7@
2KFP-7L16'?C/@
 K81M??L2F/7@C-@
"K281M??-L /@C@F
18 W'&96
OOOOOOOKF
OOOOOOO K 
96318
3264
296'.*
o'  ++"##"% >"E +#)
o' %+#"%"$53W  
E)
o#  81M??L2F/7@C-@"81M??-L/@C@#:+ 
":"##+#)
o.##+# #)
-) ' ##>H##4; ""35#36%53)
1 :+ $#53"3 5#36%%
#)1"$"   +"$%+>)
LLLL06164LLL#$#"" H#)?+#) 
E@)
PK16'?53)@
K53)P
&KLP
K&N-7/
K.&18'14&'?@
K?LF&@N-7
2KFP-7L.&18'14&'?@
 K.&18'14&'??-L2F/@/@
"K2.&18'14&'??L@@F
18 W'&96
OOOOOOOKF
OOOOOOO K 
96318
296'.*
o#$#"" H#)?+#) E@)
o#  .&18'14&'??-L2F/@/@".&18'14&'??L@@#
:+ ":"##+#)
/) <.121+#%# *
6*S"-%?#@"U""%#+#
.GI"?I".3G(9.(64 .16'949".3G(9@
A16G'*I"K5#36%
AG'G'*4 ""
PSK16'?I")U@A3  
UKI")UPSA #+ "
3364
4UKPS)U
SK16'?4UC-7/)U@A> #
SKS16'?SC/U@A5#"> #)
K16'??4UFS@C-7)U@
2SKPSFS16'?-7)L@A" 
 K?L2SF/7@N-
"K2S??-L /@N@FU
18 W'&96A$ 5
OOOOOOOKF
OOOOOOO K 
96318A$ 5
963.G
) <.121+#%1 $*
.GI"?53.3G(9.(64 .16'949".3G(9@
ALLL06164LLL6(;!(131853W)?8%)E@
A16G'*I"K5#36%
AG'G'*4 ""
PSK16'?53)@A3  
UK53)PSA #+ "
&SKLPS
SK&SN-7/A> #
SKSSN/A"I" 5#"> #
K?LSF&S@N-7
2SKSFPS-7LN/A" 
 K?L2SF/7@N-
"K2S?-L /@NFU
18 W'&96A$ 5
OOOOOOOKF
OOOOOOO K 
96318A$ 5
963.G
7) 1Astronomical Algorithms+7-5?##@$ ##># )
' % >%"$"# +$"" 5#3%
 H#7) "8%)/ +#+4
#")
PK81M?53F)@
K53F)P
4K81M??P77)@C-7/)@
KPFF481M?4C/@
KF/
2K81M??)@C-7)@
3K81M?-7)L2@
3464
9K81M??3@C-)7@
3 K381M?-)7L9@F
19
OOOOOO K9
OOOOOO;K2/7
#
OOOOOO K9-
OOOOOO;K2/
"
296'.*
o' # #$#"5#3% H#77) 
"8%)/ +#+4#")6  
# $#"##$5#3%% # > 
  " 5#3   4" 5#3
6%+"% 4)
o181M+#">   # $#"##5#3
6%>   >"E)
o  -)7 # A%+#"%-)7)# #"%
"$#+" #+C-)7K)-7-7%#> 
;+>  )-77/)7/7-)
) 8" 4#"The Explanatory Supplement to the Astronomical
Almanac+7/$# %8##"!8#" ##"
6$%-/-$#5#36%)' # % >%
 #"%" # "$#+)
(K53F77
6K81M??/L(@C/7@
(K(81M??/7L6F-@C/@
1K81M?/L?(F@C/7@
(K(81M??/7L1@C/@F-
5K81M??L(@C//@
3K(81M??//L5@C@
(K81M?5C@
K5FL(
;KL?6/@F1F(
296'.*
o' # $#""%6$%-/-?$53%@)
o' # #"%#"" "#5#36%> E#
+)'  #   > > %")
o' # "" %"#+#" " 
#"$)
3564
o' #  #$ "" $ %> #
>"%"-))))
)  2"9:+#5364
LLL06164LLL6 
  CC+# " 16'?@" 
""
  ?@+# 81M?@" ")
"5364?536@*
JJJ5#36%43JJJ
'K536)
PK'CC
K'P
4KP)
K4CC-7/)
KCC/
K??F4@CC-7)@
2KFP?-7)L@CC
 K??L2F/7@C-@
"K2??-L /@CC@F
 W*
FK
 K
?B "D@
3.4.3 Julian Day Number to Julian date - Implementation
Examples
) ' ##>H##5#; ""35#36%53)1
# )
PK16'?537)@
K537)P
K16'??P)@C-7)@
2KP16'?-7)L@
 K81M??L2F/7@C-@
"K281M??-L /@C@F
18 W'&96
OOOOOOOKF
OOOOOOO K 
96318
296'.*
3664
o'  ++"##"% >"E +#)
o#  81M??L2F/7@C-@"81M??-L/@C@#:+ 
":"##+#)
o.##+#>  #++ 
#)#> + +#)
) ' ##>H##5#; ""35#36%53)1
 :+ $#53"3 5#36%%
#)
PK16'?537)@
K537)P
K16'??LP@C-7@
2KP-7L16'?C/@
 K81M??L2F/7@C-@
"K281M??-L /@C@F
18 W'&96
OOOOOOOKF
OOOOOOO K 
96318
296'.*
o'  ++"##"% >"E +#)
o' %+#"%"$53W+# 
E)
o#  81M??L2F/7@C-@"81M??-L/@C@#:+ 
":"##+#)
o.##+# #)
-) ' ##>H##5#; ""35#36%53)1
 :+ $#53"3 5#36%%
#)1"$"   +"$%+>)
LLLL06164LLL#$#"" H#7)?8%) 
E@)
PK16'?537)@
K537)P
K81M??LP@@C-7@
2KP-7L.&18'14&'?@
 K.&18'14&'??-L2F/@/@
"K2.&18'14&'??L@@F
18 W'&96
OOOOOOOKF
3764
OOOOOOO K 
96318
296'.*
o#$#"" H#7)?8%) E@)
o#  .&18'14&'??-L2F/@/@".&18'14&'??L@@#
:+ ":"##+#)
/) <.121+#%# *
6*S"-%?#@"U""%#+#
.GI"I?I".3G(9.(64 .16'949".3G(9@
A16G'*I"K5#36%
AG'G'*5# ""
PSK16'?I"7)U@A3  
UKI"7)UPSA #+ "
K16'??PS)U@C-7)U@
2SKPS16'?-7)L@A" 
 K?L2SF/7@N-
"K2S??-L /@N@FU
18 W'&96A$ 5
OOOOOOOKF
OOOOOOO K 
96318A$ 5
963.G
) <.121+#%1 $*
.GI"I?53.3G(9.(64 .16'949".3G(9@
ALLL06164LLL6(;!(131853W7)?+#"E@
A16G'*I"K5#36%
AG'G'*5# ""
PSK16'?537)@A3  
UK537)PSA #+ "
K?LPS@N-7
2SKPS-7LN/A" 
 K?L2SF/7@N-
"K2S?-L /@NFU
18 W'&96A$ 5
OOOOOOOKF
OOOOOOO K 
96318A$ 5
963.G
3864
7) 1Astronomical Algorithms+7-5?##@$ ##># )
' % >% +$#"$"# +$"" 5#3
% H#7) "8%)/ 
+#+4#")
PK81M?53F)@
K53F)P
KPF/
2K81M??)@C-7)@
3K81M?-7)L2@
9K81M??3@C-)7@
3 K381M?-)7L9@F
19
OOOOOO K9
OOOOOO;K2/7
#
OOOOOO K9-
OOOOOO;K2/
"
296'.*
o' # #$#"5#3% H#) "
5/ +#+5##")6   
# $#"##$5#3%%  # > 
  " 5#3   4" 5#36%
+"% 4)
o181M+#">   # $#"##5#3
6%>   >"E)
o  -)7 # A%+#"%-)7)# #"%
"$#+" #+C-)7K)-7-7%#> 
;+>  )-77/)7/7-)
3964
3.4.4 Introduction to Analysis of Date Algorithms
3.4.4.1 Analysis of Julian Day Number to Gregorian date algorithms
' #E $$#  $ 5#36%
43).## #  "#> #5#36%##$ 
#+ % +"" " +" + 
# ")#:#"" $#"% #"
%5%  $#%#>##=>"$#   %>
JJ" +%")' # +#"% 
   $%> %" %" +" %
+#"":")
'  ##>%#$" +#: $+#
  $%+")' 13%#  +#)' %# >
  #  #+%#+#:)'  "" J%J# 
 +#+# #=## +"$
+" + # > #)' ##>#=$
+#<.122"0">)
Analysis of Julian Day Number to Gregorian Date Algorithms
ID AUTHOR TYPE RANGE + - * \ / SHIFT INT FIX
 # ## - - /
 1 ## 7 /
-  1 W) /
7  # W7)  - 7
8## 1 W) 7 7
O
4064
3.4.4.2 QBASIC Timing of some Julian Day Number to Gregorian date
implementations
Routine Type Range Conversions per second Comments
/ 1 W -/)- 6#53##>"
8(1949( 1 W) -/) 6#53##>"
G- 1 W) -)-
G # ## )7 '="+
G # ## -)
 # W7) )
.G%?I".3G(9.(64 .16'949".3G(9@
A# > ="+
PSK16'?I")U@
UKI")UPS
4UKPS)U
SK16'?4UC-7/)U@
UK4UFS16'?SC/U@A">5#
K16'??U@C-7)U@
2SKU16'?-7)L@AU")"$"+
 K?L2SF/7@N-
"K2S??-L /@N@FU
18 W'&96
KF
 K 
96318
963.G
.G%?I".3G(9.(64 .16'949".3G(9@
A16G'*I"K5#36%
AG'G'*4 ""
A""# 
PSK16'?I")U@A3  
UKI")UPSA #+ "
4UKPS)U
SK16'?4UC-7/)U@A> #
SKS16'?SC/U@A5#"> #)
K16'??4UFS@C-7)U@
2SKPSFS16'?-7)L@A" 
 K?L2SF/7@N-
"K2S??-L /@N@FU
18 W'&96A$ 5
KF
 K 
96318A$ 5
963.G
4164
.G%-?I".3G(9.(64 .16'949".3G(9@
ALLL06164LLL6(;!(131853W)? "E@
A16G'*I"K5#36%
AG'G'*4 ""
A ""$+#
PSK16'?I")U@A3  
UKI")UPSA #+ "
&SKLPS
SK&SN-7/A> #
SKSSN/A"I" 5#"> #
K?LSF&S@N-7
2SKSFPS-7LN/A" 
 K?L2SF/7@N-
"K2S?-L /@NFU
18 W'&96A$ 5
KF
 K 
96318A$ 5
963.G
.G%/?I".3G(9.(64 .16'949".3G(9@
A682'16(5G(163;6G9((093
A5G(163;6G9G.'949'9'&6
PSKI"
&SKLPS
SK&SN-7/
SKSSN/
K?LSF&S@N-7
2SKSFPS-7LN/
 K?L2SF/7@N-
"K2S?-L /@N
18 W'&96
KF
 K 
96318A$ 5
963.G
.G##?I".3G(9.(64 .16'949".3G(9@
#SKI"F77
SK?/L#S@N/7
#SK#S?/7LSF-@N/
1SK/L?#SF@N/7
#SK#S?/7L1S@N/F-
5SK?L#S@N//
"K#S?//L5S@N
#SK5SN
 K5SFL#S
KL?S/@F1SF#S
963.G
4264
.G?I".3G(9.(64 .16'949".3G(9@
A
PSK16'?I"F)U@
UKI"F)UPS
4SK16'??PS77)U@C-7/)U@
SKPSFF4S16'?4SC/@
SKSF/
2SK16'??S)U@C-7)U@
"SK16'?-7)UL2S@
9SK16'??S"S@C-)7U@
"KS"S16'?-)7UL9S@FU
189SQ/'&96
 K9S
9(.9A9K/9K
 K9S-
96318
18 W'&96
K2S/7
9(.9
K2S/AKK
96318
963.G
4. Modi!ed Julian Day
' Modified Julian DayMJD""*
53K53/)
 53K)+"6$%))' 53%4> " "
"###)
4364
5. Rata Die
5.1 Rata Die Algorithms
' 3 %"%"3%- E +#+
4#")' 3"5 >  %5#3
6%/))' # ## 3$ "" 4
2#" ## 5#36%:+  #+ %"
  $" %"3%- E  
 %"6$%/) /-). -7"%> "
3%- $%-7 "#$  )
'   E3"-7)
' ##>#+"## 3*
.'92## $#PONE ##> "*
) PK;F?/@N
) 18Q-'&96PK;9(.9PK;
-) +>+#  "# % 
 >## >   58%)
.'92## $#8ONE ##> "*
) 8 $#$":"%)' $ $#-7---7-/
//)'  "##  ""=#+
+#)
) 18Q-'&96KF
8K?-L/@N
-) 18Q-'&96KF
8K?L@N-
' ##>  "$)
/) 8K?L?L??/@N@@@N-
' # "18" "$ )
.'9-' 3
3F8F-7LPFPN/PNFPN/-7
' +## >##+*
18Q-'&96
OOOOOOOOKF
OOOOOOOOK
96318
"K"F?-L/@NF-7LFN/NFN/-7
4464
> 
"K"  
K 
K
? 4#"@"
" 3)
5.2 Rata Die Implementation Examples
) ' ##>+#%<.12)1$#"##"+ #
 <.12+##?-%" @)
.G?".(64.(64 .16'949".16'949@
A16G'* ">  +43
AG'G'*3%
SKA3"++
TK A3"++
18TQ-'&96
OOOOOOTKTF
OOOOOOSKS
96318
"K"F?-LT/@NF16'?-7)ULS@16'?SL)@F16'?SL)@-7
963.G
) ' ##>+#%<.12)1#$#"$
3)
.G?".(64.(64 .16'949".16'949@
A16G'* ">  +43
AG'G'*3%
ALLL06164LLL#$#"$3
A))"5 #
SKA3"++
TK A3"++
18TQ-'&96
OOOOOOTKTF
OOOOOOSKS
96318
"K"F?-LT/@NF-7SLSFSN/SNFSN/-7
963.G
4564
6. Inverse Rata Die
6.1 Inverse Rata Die Algorithms
' # "$#+$5#36%4"I
 ##>## $3%43)' #
" +> 3"5  -7"""
$ %"  )
1 "+*
[x]K  ":":)8:+#B)DK)' ##" 
#?:+#2C2FF@)
INT(x)KB:DOOOOOO6'9*+# $"")
FIX(x)K %:> )8:+#81M?)@K
x\yK81M?:C@
.'9(3% 36%)2##
PK3F-7
.'92## $#>   %##*
K16'?PV@C?-7/)@@
> )7/7/7QVQ)77/
.'9-2## ">  > #? 5#2#"@%""%="$"
 42#")' $# %")
KPVF16'?C/@K
> QVQ)
?1$=VKVK))@
.'9/2## $#; #">  *
;K16'?C-7)@
.'92## $# " ONE ##>*
4664
) 2KPF16'?C/@16'?-7)L;@
) 2K81M?16'?-7)L;@@F
' +##$#>  #"+
%" ?16'?-7)L;@@#> $#+))1 
#
2K16'?-7)L;@
> 2"#)
.'972## $#   ONE ##>*
) K81M??L2F/7@C-@
) K81M??-L2F/@C7-/@
?6 7-/X/" "$%+#">   % %
+)@
-) K81M??/L2F@C7-7@
?6 7-7X7" %+#"%= ++7%-%%)@
/) K81M?V-L2F)------------/7V-L/)-----------@
> V-K)-7-7//)----
.'92## $#8>   %" +"  
ONE ##> "*
) 8 $#$":"%)' $ $#-7-///
-7--)? $# -  /)@'  "##  "
"=#++#)
) 8K?-L/@N
-) 8K?L@N-
' ##>  "$)
/) 1# ""
8K81M?-)7L)/@KF81M?-)7L?F@@
%"#  # ###>"="+) 
+%#"%" +$)6 --)7L)/#>
+$)9 81M %")
.'9' 4"A"  
3K28
.'92$  "#"5ONE ##> "*
) 1W 
OOOOOOO;K;F
4764
OOOOOOOK
"
) ;K;F81M?C-@
KL81M?C-@
' 4" 
;K;
 K
' ##$#"3%#"$3%"+"
4"?+%#+#+4"@)
9:+#
' ##>H##4; ""33%*
PK3F-7 +
4KP) "#+
K16'?4C-7/)@ +
K16'?C/@ ++-
K16'??F4@C-7)@ ++-"+/
2KFP16'?-7)L@ +
 K81M??L2F/7@C-@ +7
"K281M??-L /@C@ +"
18 W'&96 +
OOOOOOOKF +
OOOOOOO K  +
96318 +
4864
6.2 Inverse Rata Die Implementation Examples
6.2.0 Notation
[x]K  ":":)8:+#B)DK)' ##" #
?:+#2C2FF@)
INT(x)KB:D6'9*+# $"")
FIX(x)K %:> )8:+#81M?)@K
x\yK81M?:C@
6.2.1 Rata Die Number to Gregorian Date
) ' ##>H##4; ""33%3)1
# )
PK3F-7
4KP)
K16'?4C-7/)@
K16'?C/@
K16'??F4@C-7)@
2KFP16'?-7)L@
 K81M??L2F/7@C-@
"K281M??-L /@C@
18 W'&96
OOOOOOOKF
OOOOOOO K 
96318
296'.*
o'  ++"##"% >"E +#)
o#  81M??L2F/7@C-@"81M??-L/@C@#:+ 
":"##+#)
o.##+#>  #++ 
#)#> + +#)
) ' ##>H##4; ""33%3)1
 )
PK3F-7
&KLP
K16'?&C-7/@
K16'?C/@
4964
K16'??LF&@C-7@
2KFP-7L16'?C/@
 K81M??L2F/7@C-@
"K281M??-L /@C@
18 W'&96
OOOOOOOKF
OOOOOOO K 
96318
296'.*
o'  ++"##"% >"E +#)
o' %+#"%"$3W  
E)
o#  81M??L2F/7@C-@"81M??-L/@C@#:+ 
":"##+#)
o.##+# #)
-) ' ##>H##4; ""33%3)1
"$"   +"$%+>)
LLLL06164LLL#$#"3 H#-?  E@)
PK3F-7
&KLP
K&N-7/@
K.&18'14&'?@
K?LF&@@N-7
2KFP-7L.&18'14&'?@
 K.&18'14&'??-L2F/@/@
"K2.&18'14&'??L@@
18 W'&96
OOOOOOOKF
OOOOOOO K 
96318
296'.*
o#$#"3 -7?  E@)
o#  .&18'14&'??-L2F/@/@".&18'14&'??L@@#
:+ ":"##+#)
5064
/) <.121+#%# *
6*S"-%?#@"U""%#+#
.G?".(64.(64 .16'949".16'949@
A16G'*"K36%
AG'G'*4 ""
A""# 
PSK"F-7A35 
4UKPS)U
SK16'?4UC-7/)U@A> #
SKS16'?SC/U@A5#"> #)
K16'??4UFS@C-7)U@
2SKPSFS16'?-7)L@A" 
 K?L2SF/7@N-
"K2S??-L /@N@
18 W'&96A$ 5
OOOOOOKF
OOOOOO K 
96318A$ 5
963.G
) <.121+#%1 $*
.G?".(64.(64 .16'949".16'949@A16G'*"K
36%AG'G'*4 ""
ALLL06164LLL6(;!(13183W-7? E@
A16G'*"K5#36%
AG'G'*4 ""
PSK"F-7A3  
&SKLPS
SK&SN-7/A> #
SKSSN/A"I" 5#"> #
K?LSF&S@N-7
2SKSFPS-7LN/A" 
 K?L2SF/7@N-
"K2S?-L /@N
18 W'&96A$ 5
OOOOOOOKF
OOOOOOO K 
96318A$ 5
963.G
5164
7. Day of the Week
7.1 Day of the Week Algorithms
1  $"  %  7+" " >=
##>*
."
"
'"
- 0""
/ ' "
8"
7 ."
4$ %"?) @> ":+"5#36%53?#+
)@ " >=H#
?16'?53F)@@"#
1> %>+# "#"+#
)6# "#+#"  #+$>  
$)A!#:+#+# % 
+%#)
1 #+ 5#3%"% "?$""
E@+ +$")1":+" 5#3%"  
" >=H#*?16'?53F@@"#)
8:+#
8"3%-53///
."5 53///)
."553//
16'?///F@K16'?///)F)@K//7
"//7"K?-LF7@"K7?."@
5264
7.2 Day of Week Implementations
' ##># $ " >=%?."K@$43)
) ' ##><.12+#%$#"##43+ >"
# +#)
.G>=?">.16'949.(64.16'949".16'949@
TK
SK
18TQ-'&96
OOOOOOSKS
OOOOOOTKTF
96318
">K?"F?-LT/@NF16'?-7)ULS@16'?SL)@F16'?SL)@F@3

18">Q'&96O
OOOOOO">K">F
96318
963.G
) ' ##><.12+#%$#"##43 
 )1 
.G>=?">.16'949.(64.16'949".16'949@
TK
SK
18TQ-'&96
OOOOOOSKS
OOOOOOTKTF
96318
">K?"F?-LT/@NF-7LSFSN/SNFSN/F@3
963.G
-) +#!#%
.%530=?I"3%#@
A16G'*I"K5#36%
AG'G'*" +#%#">
TK1?I"F)@"
1TQ' TKTF
">)2+K>=?T@
9".%
/) '+# "
>="6KBJ."JJ"JJ'"JJ0""JJ' "JJ8"JJ."JD
>="K??536F@T@
+?J>="KJ>="6B>="D@
5364
5464
8. Di+erence Between Dates
2## "%>>" ":+"5#36%
+#= "%> 5#36% ") # $
+$+ $)2%= # +++ 
#"  " 45#)1% " #"  
#" # +#+%#)
9. (year, ordinal) to JDN
' ""#5#36% >")' "##>#:# 4
536:+ >=  ""H#" ##>+#)1+#
> 
M=<-
  =
M=M+
"
Y=Y
">  $$#-
(
-M/
)
¿=
(
--/
)
¿=-7
0   
)

)+-7=//).
& #" )6 
  CC+# " 16'?@" ""
  ?@+# 81M?@" ")
";"536?"#@*
JJJ?"#@5#36%JJJ
K
?"#F-7LFCC/CCFCC/F//)@
5564
10. JDN to (year, ordinal)
' 5#36%?"#@#  "#>  5364# 
>  "+ ## )' " "I"5" 
"I"+"+>   #+)&  +# 
# )
6 
  CC+# " 16'?@" "
  ?@+# 81M?@" ""
  T+# "#)
"536;"?536@*
JJJ5#36%""#JJJ
'K536)
PK'CC
K'P
4KP)
K4CC-7/)
KCC/
K??F4@CC-7)@
2KFP?-7)L@CCF
T/*U#+,
2FK
2W-7*
2K-7
FK
#T*U#+,"
2FK7
2W-77*
2K-77
FK
#T/*U#+,-"
2FK
2W-7*
2K-7
FK
#*U#+*#
2FK7
2W-77*
2K-77
FK
?2@
5664
11. Additional Proofs
11.1 Proof of Meeus' Julian Day Number to Gregorian Date
algorithm
1Astronomical Algorithms+7-5$ # ?##@
PK81M?53F)@
K53F)P
4K81M??P77)@C-7/)@
KPFF481M?4C/@
KF/
2K81M??)@C-7)@
3K81M?-7)L2@
9K81M??3@C-)7@
3 K381M?-)7L9@F
19
OOOOOO K9
OOOOOO;K2/7
#
OOOOOO K9-
OOOOOO;K2/
"
' ##> >   "$"# +$"" 5#3%
 H#7) "8%)/ +#+4#")
Proof that the year is correct
PK81M?53F)@K81M?53F)@FK81M?53)@F
PK81M?53))@F)F
PK81M?53)@F)
1>$ 
4K81M??P77)@C-7/)@
.16'?53)@ P "$"# >>
4K81M??PF)77)@C-7/)@
> P "$"# )
4K81M??PF)77)@C-7/)@
4K81M??P/7)@C-7/)@
4K81M??P/7)@C-7/)@
K81M??P/L-7/))@C-7/)@
K/F81M??P)@C-7/)@
5764
9:+" P "$"# >$ 
KPF)FF481M?4C/@
"%"> 
KF/
> $
KPF)FF481M?4C/@F/
>  > %"> 4%
KPF7/F81M??P)@C-7/)@81M?81M??P)@C-7/)@C/@
"
2K81M??)@C-7)@
2K81M??PF7/)F81M??P)@C-7/)@81M?81M??P)@C-7/)@C/@@C-7)@
2K81M??PF/7L-7))F81M??P)@C-7/)@81M?81M??P)@C-7/)@C/@@C-7)@
2K/7F81M??P)F81M??P)@C-7/)@81M?81M??P)@C-7/)@C/@@C-7)@
##%/72+ "$"# > VK)"VK)' /7$"+
 "I "+"+  %)
Proof that the month is correct
' ##> >   ##H$# "$"# )1>$ 
9K81M??3@C-)7@
' +$$ JPJ" "$"# *
KPF7/F81M??P)@C-7/)@81M?81M??P)@C-7/)@C/@
"
3K81M?-7)L2@
%$
9K81M??PF7/F81M??P)@C-7/)@81M?81M??P)@C-7/)@C/@
81M?-7)L2@@C-)7@
.2 +#/73"+#/7L-7)K).%  
:+9"2A+ $
9AK81M??PFF81M??P)@C-7/)@81M?81M??P)@C-7/)@C/@81M?-7)L2A@@C-)7@
6 
?PF81M??P)@C-7/)@81M?81M??P)@C-7/)@C/@81M?-7)L2A@
 " ##
5864
81M??F@C-)7@
'  $#  %F%
 FK81M??F@C-)7@
 K81M??F)-@C-)7@
 K81M??F)-@C-)7@
 K81M??L)-7F)7@@
" +"$"#  )1$ #+ 
$$#%>)--/")7/7-)
'  9  F$#    "I"  $ "
#" 5)
Proof that the day is correct
1>+$# > 81M?-)7L9@ %" +" ).3 
%" 
3 K381M?-)7L9@F
11.2 Proof of Explanatory Supplement Gregorian to Julian
Day Number algorithm
8" 4#"The Explanatory Supplement to the Astronomical Almanac
+7/$ $# 43?6$%-/-@$5#36%*
?#$#"53W"53"% "@
(K53F77
6K?/L(@C/7
(K(?/7L6F-@C/
1K?/L?(F@C/7
(K(?/7L1@C/F-
5K?L(@C//
3K(?//L5@C
(K5C
K5FL(
;KL?6/@F1F(
2$ "$%#"  %#"*
(K53F77
6K?/L(@C/7
(K(?/7L6F-@C/
1K?/L?(F@C/7
(-K(?/7L1@C/F-
5964
5K?L(-@C//
3K(-?//L5@C
(/K5C
K5FL(/
;KL?6/@F1F(/
G $#(6%>*
6K?/L?53F77@@C/7
6K?/L53F/L77@C/7
6K?/L53F/7@C/7
6K?/L53F/7@C?-7)/L/@
6K?53F77@C?-7)/L@
6K?53)F)F77@C?-7)/L@
6K?53)F7)@C?-7/)@
6K?53)F7))@C-7/)
6K?53)F/L-7/))@C-7/)
53 #+"? # @ +>4")' 53%
+ "" ">  16'?53@)+")
2$5#36% +  "$
6K?53)F))F/L-7/))@C?-7/)@
6K?53))F/L-7/))@C?-7/)@
6K/F?53)))@C?-7/)@
6/KU+"
(K(?/7L6F-@C/
(K(?-7)/L/L6F-@C/
(K(-7)/LL6)
(K53F77K?53))F/L-7/))@
(K(-7)/LL6)
(K?53))F/L-7/))@-7)/LL6)
(K?53))F/L-7/))@-7)/LL6)
G $#6
(K?53)))@-7)/LL??53)))@C?-7/)@@
(#  %"#>  %" > #+"
%")
1K?/L?(F@C/7
1K?/L?(F@C?-7)L/F@
1K??(F@C?-7)FC/@
1K% "+$# > # "$#+)
(-K(?/7L1@C/F-
(-K(?/L-7)L1@C/F-
(-K(-7)L1F-
6064
5K?L(-@C//> 5K 
5K?L?(-7)L1F-@@C//
5K?L?(-7)L1@FL-@C//
5K?L?(-7)L1@F/@C//
5K?L?(-7)L1@F/@C//
5K)-7---L?(-7)L1@F)-/--
.(#  %"#% "##+""
-7)L1 %" ##
?(-7)L1@K"
5K)-7---L?"@F)-/--
5K)-7---L?"@F)-/--)-7---
5K)-7---L?"@F)-
"5K 
 K)-7---L?"@F)-
 K)-7---L?"@F)-
' +# +$#"$" $" %)& #+
)-7---" ;+> )///7)//7-)
3K(-?//L5@C
3K(-?//L? @@C
3K(-??//L //L@@C
3K(-??//L //@@C
3K(-81M?-)L 7)@
3K?(-7)L1F-@81M?-)L 7)@
.(#  %"#% "##+""
-7)L1 %" ##
?(-7)L1F-@K"F-K"F-)
 
3K"F-81M?-)L 7)@
3K"81M?-)L )@
> > "$#+
81M?-)L )@
  $ %" +" )1
 #+K-) ;+%>  
)//7/--)/-
(/K5C
5K (/K -/
6164
8##$5)
5FK 
"% %-/)
' 
K5FL(/
6/KU+"
1K"#
"""  -/
;KL?6/@F1F(/
11.3 Proof regarding [I/365.25]
' ##> > B1C-7)DKB1C?-7)FC/@D
+$""1#+#/"# -7)L"
1#+#/ 
B1C-7)DKB1C?-7)FC/@DF
(
1K-7)LVF
> V"#"
QQ-7)
.1"V#%#+#)
B1C-7)DKB??-7)LVF@C-7)DKV
B1C?-7)FC/@D
KB?-7)LVF@C?-7)FC/@D
KB?-7)LVF@C-7)D
KB-7)C-7)LVFC-7)D
KB)---LVFC-7)D
KB?FF)---@LVFC-7)D
KB?F)7//7/@LVFC-7)D
KBV)7//7/LVFC-7)D
KVFB)7//7/LVFC-7)D
KVFBVC/7FC-7)D
6>
BVC/7FC-7)DK
+$""
K"
QVQ/7
6264
"
BVC/7FC-7)DK
+$""
QQ-7)
""V)(A#= > K)*
QVC/7F)C-7)Q
QVC/7F)7//7/7Q
)7//7/7QVC/7Q)7//7/7
)7//7/7QVC/7Q)----
QVQ/7
/7QVQ
6>W)"V+$%$# )' 
B1C-7)DKB1C?-7)FC/@D
+$""1#+#/"# -7)L"
1#+#/ 
B1C-7)DKB1C?-7)FC/@DF
11.4 Proof of 3 useful identities
' ##>"+$%#>*
) ?/7L?;F/@@N/K81M?-7)L;@F-
) -7L?@@NK81M?-)-------L)77777777@F-
-) ?-L??;F/@N@@N/K81M?;C@F81M?;C/@-7
)
?/7L?;F/@@N/
K81M??/7L?;F/@@C/@
K81M???/7C/@L?;F/@@@
K81M??-7)L?;F/@@@
K81M?-7)L;F-7)L/@
K81M?-7)L;F-@
K81M?-7)L;@F-
)
.-7L?@CK7)77777777
"-7CK-)-------
-7L?@@N
K81M?-)-------L7)77777777@
K-F81M?-)-------L)77777777@
6364
-)
?-L??;F/@N@@N/K?-L?81M?;CF/@@@N/
K?-L?/F81M?;C@@@N/
K??/F-L81M?;C@@@N/
K?81M?/C/F-L81M?;C@C/@@
K?81M?-7)F-L81M?;C@C/@@
K?-7F81M?)F?-C/@L81M?;C@@@
K-781M?)F??C/@@L81M?;C@@
K-781M?)?C/@L81M?;C@F81M?;C@@
K-781M?)?C/@L81M?;C@F81M?;C@@
K-781M?)81M?;C/@F81M?;C@@
K-781M?)@F81M?;C/@81M?;C@
K81M?;C@F81M?;C/@-7
6464
12. Revision List
!)-
'".+%-
.),,/#%)""":YQ'&96Z
2*  $%="$% #) #>
!-
'" -
.$Y18Q-'&96PK;9(.9PK;ZY18Q-'&96KFZ>#
 " #) Y18Z
!-/."%
o""" "5364"4536
o""" "?"#@536"536?"#@' =5%
 "$#$?"#@%"")
o""" ">="##
o+
 "-))))$"+++:
8*' %""%+;#  H#-7L;FB;C/D
B;CDFB;C/D++:#H#-7L;F;C/;CF;C/K-7)/ 
  $#%# )
'*' %""%+;#  H#-7L;FB;C/D
B;CDFB;C/D++:#H#-7L;F;C/;CF;C/K;L?-7FC/C
FC/@K;L-7)/   $#%
# )
o7 "#
8*:
'*:
o+:"
o"""%#
!/
o2"?"#@536 " >" >"$"4
536# )' =5%% )
o8:"+# "
o"""++ $#
B963832G96'D
ResearchGate has not been able to resolve any citations for this publication.
25*K + R where K is an integer and R a real and 0 < R < 365
  • I Let
Let I = 365.25*K + R where K is an integer and R a real and 0 < R < 365.25
=-1 provided R = 0 and 1 < K < 1461001 and25 under certain conditions of K. Let's look at the case
  • Now
Now [-K/1461001 + R/365.25025] =-1 provided R = 0 and 1 < K < 1461001 and [-K/1461001 + R/365.25025] = 0 provided 1 < R < 365.25 under certain conditions of K. Let's look at the case where R = 0.25: 0 <-K/1461001 + 0.25/365.25025 < 1