コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }