public static bool datetimeisValidDate(datetimeDate date) { bool valid; double [] daysInMonth; double daysInThisMonth; if (date.year >= 1752d) { if (date.month >= 1d && date.month <= 12d) { daysInMonth = datetimegetDaysInMonth(date.year); daysInThisMonth = daysInMonth[(int)(date.month)]; if (date.day >= 1d && date.day <= daysInThisMonth) { valid = true; } else { valid = false; } } else { valid = false; } } else { valid = false; } return(valid); }
public static double datetimegetSecondsFromDateTime(datetimeDateTime dateTime) { datetimeDate date; double seconds; double days; double secondsInMinute; double secondsInHour; double secondsInDay; seconds = 0d; date = new datetimeDate(); date.year = dateTime.year; date.month = dateTime.month; date.day = dateTime.day; days = datetimedateToDayNumber(date, new datetimeSuccess()); secondsInMinute = 60d; secondsInHour = 60d * secondsInMinute; secondsInDay = 24d * secondsInHour; seconds = seconds + secondsInDay * days; seconds = seconds + secondsInHour * dateTime.hours; seconds = seconds + secondsInMinute * dateTime.minutes; seconds = seconds + dateTime.seconds; return(seconds); }
public static datetimeDate getDateFromNorwegianPersonalIdentificationNumber(char [] fnummer, DoubleReference failures) { datetimeDate aDatetimeDate; double individnummer; double day, month, year; double d1, d2, d3, d4, d5, d6, d7, d8, d9; aDatetimeDate = new datetimeDate(); d1 = charToNumber(fnummer[0], failures); d2 = charToNumber(fnummer[1], failures); d3 = charToNumber(fnummer[2], failures); d4 = charToNumber(fnummer[3], failures); d5 = charToNumber(fnummer[4], failures); d6 = charToNumber(fnummer[5], failures); d7 = charToNumber(fnummer[6], failures); d8 = charToNumber(fnummer[7], failures); d9 = charToNumber(fnummer[8], failures); if (failures.doubleValue == 0d) { individnummer = d7 * 100d + d8 * 10d + d9; day = d1 * 10d + d2; month = d3 * 10d + d4; year = d5 * 10d + d6; if (individnummer >= 0d && individnummer <= 499d) { year = year + 1900d; } else if (individnummer >= 500d && individnummer <= 749d && year >= 54d && year <= 99d) { year = year + 1800d; } else if (individnummer >= 900d && individnummer <= 999d && year >= 40d && year <= 99d) { year = year + 1900d; } else if (individnummer >= 500d && individnummer <= 999d && year >= 0d && year <= 39d) { year = year + 1900d; } else { failures.doubleValue = failures.doubleValue + 1d; } aDatetimeDate.year = year; aDatetimeDate.month = month; aDatetimeDate.day = day; } return(aDatetimeDate); }
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); }