コード例 #1
0
ファイル: DateUtilities.cpp プロジェクト: EdMaurer/ChakraCore
 /*static*/
 int DateUtilities::GetDayMinAndUpdateYear(int day, int &year)
 {
     int dayMin = (int)DayFromYear(year);
     if (day < dayMin)
     {
         year--;
         dayMin = (int)DayFromYear(year);
     }
     return dayMin;
 }
コード例 #2
0
ファイル: DateUtilities.cpp プロジェクト: EdMaurer/ChakraCore
    ///------------------------------------------------------------------------------
    /// Get a time value from (year, mon, day, time) values.
    ///------------------------------------------------------------------------------
    double
    DateUtilities::TvFromDate(double year, double mon, double day, double time)
    {
        // For positive month, use fast path: '/' and '%' rather than 'floor()' and 'fmod()'.
        // But make sure there is no overflow when casting double -> int -- WOOB 1142298.
        if (mon >= 0 && mon <= INT_MAX)
        {
            year +=  ((int)mon) / 12;
            mon = ((int)mon) % 12;
        }
        else
        {
            year += floor(mon/12);
            mon = DblModPos(mon,12);
        }

        day += DayFromYear(year);

        AssertMsg(mon >= 0 && mon <= 11, "'mon' must be in the range of [0..11].");
        day += g_rgday[(int)mon];

        if (mon >= 2 && !FLeap((int)year))
        {
            day -= 1;
        }

        return day * 86400000 + time;
    }
コード例 #3
0
ファイル: Date.cpp プロジェクト: bsdf/trx
 static double DayFromMonth(double year, double month)
 {
     int iMonth = (int) MathUtils::floor(month);
     if (iMonth < 0 || iMonth >= 12) {
         return MathUtils::kNaN;
     }
     return DayFromYear((int)year) + kMonthOffset[(int)IsLeapYear((int)year)][iMonth];
 }
コード例 #4
0
ファイル: Date.cpp プロジェクト: bsdf/trx
 static inline int DayWithinYear(double t)
 {
     return (int) (Day(t) - DayFromYear((int) YearFromTime(t)));
 }