public static double datetimedateToDayNumber(datetimeDate date, datetimeSuccess success) { double days; success.success = true; days = -79623d; /* Day 1752-01-01*/ days = days + datetimedaysInYears(date.year); days = days + datetimedaysInMonths(date.month, date.year); days = days + date.day - 1d; return(days); }
public static datetimeDate datetimedayToDate(double dayNr, datetimeSuccess success) { datetimeDate date; DoubleReference remainder; date = new datetimeDate(); success.success = true; remainder = new DoubleReference(); remainder.doubleValue = dayNr + 79623d; /* Days since 1752-01-01. Day 0: Thursday, 1970-01-01*/ /* Find year.*/ date.year = datetimegetYearFromDayNr(remainder.doubleValue, remainder); /* Find month.*/ date.month = datetimegetMonthFromDayNr(remainder.doubleValue, date.year, remainder); /* Find day.*/ date.day = 1d + remainder.doubleValue; return(date); }
public static bool datetimeisLeapYear(double year, datetimeSuccess success) { bool itIsLeapYear; if (year >= 1752d) { success.success = true; if (divisibleBy(year, 4d)) { if (divisibleBy(year, 100d)) { if (divisibleBy(year, 400d)) { itIsLeapYear = true; } else { itIsLeapYear = false; } } else { itIsLeapYear = true; } } else { itIsLeapYear = false; } } else { success.success = false; itIsLeapYear = false; success.errorMessage = "Gregorian calendar was not in general use.".ToCharArray(); } return(itIsLeapYear); }