|
|
Julian dates offer a more natural way to iterate over the days of a year. A Julian date consists of a year number and a day number within that year; day number 1 is always January 1, while day number 365 is December 30 in a leap year and December 31 in a non-leap year. The static member function Time::julian() allows clients to create Time values from dates given in Julian form. Moreover, Time::julian() accepts day numbers outside the range [1,366], `normalizing' them by adjusting the year. The following code shows how to loop over a two-year period using Julian dates:
#include <Time.h>
main(){
// loop over all days in 1988 and 1989
// (doesn't raise Time::date_objection)
for(int i=1;
i<=days_in_year(1988)+days_in_year(1989);
i++){
Time t = Time::julian(1988,i);
...
}
}
The member function julian_day_no() can be used to obtain the Julian day number of an existing Time:
cout << Time t(1948,Time::march,21).julian_day_no()
<< endl;
which prints 81, since March 21 was the 81st day of 1948.