< prev index next >

modules/web/src/main/native/Source/WTF/wtf/DateMath.cpp

Print this page




 506 #else
 507     double utcOffset = calculateUTCOffset();
 508     double dstOffset = calculateDSTOffset(localTime, utcOffset);
 509     return LocalTimeOffset(dstOffset, utcOffset + dstOffset);
 510 #endif
 511 }
 512 
 513 void initializeDates()
 514 {
 515 #if !ASSERT_DISABLED
 516     static bool alreadyInitialized;
 517     ASSERT(!alreadyInitialized);
 518     alreadyInitialized = true;
 519 #endif
 520 
 521     equivalentYearForDST(2000); // Need to call once to initialize a static used in this function.
 522 }
 523 
 524 static inline double ymdhmsToSeconds(int year, long mon, long day, long hour, long minute, double second)
 525 {
 526     double days = (day - 32075)
 527         + floor(1461 * (year + 4800.0 + (mon - 14) / 12) / 4)
 528         + 367 * (mon - 2 - (mon - 14) / 12 * 12) / 12
 529         - floor(3 * ((year + 4900.0 + (mon - 14) / 12) / 100) / 4)
 530         - 2440588;
 531     return ((days * hoursPerDay + hour) * minutesPerHour + minute) * secondsPerMinute + second;
 532 }
 533 
 534 // We follow the recommendation of RFC 2822 to consider all
 535 // obsolete time zones not listed here equivalent to "-0000".
 536 static const struct KnownZone {
 537 #if !OS(WINDOWS)
 538     const
 539 #endif
 540         char tzName[4];
 541     int tzOffset;
 542 } known_zones[] = {
 543     { "UT", 0 },
 544     { "GMT", 0 },
 545     { "EST", -300 },
 546     { "EDT", -240 },
 547     { "CST", -360 },
 548     { "CDT", -300 },
 549     { "MST", -420 },
 550     { "MDT", -360 },
 551     { "PST", -480 },




 506 #else
 507     double utcOffset = calculateUTCOffset();
 508     double dstOffset = calculateDSTOffset(localTime, utcOffset);
 509     return LocalTimeOffset(dstOffset, utcOffset + dstOffset);
 510 #endif
 511 }
 512 
 513 void initializeDates()
 514 {
 515 #if !ASSERT_DISABLED
 516     static bool alreadyInitialized;
 517     ASSERT(!alreadyInitialized);
 518     alreadyInitialized = true;
 519 #endif
 520 
 521     equivalentYearForDST(2000); // Need to call once to initialize a static used in this function.
 522 }
 523 
 524 static inline double ymdhmsToSeconds(int year, long mon, long day, long hour, long minute, double second)
 525 {
 526     int mday = firstDayOfMonth[isLeapYear(year)][mon - 1];
 527     double ydays = daysFrom1970ToYear(year);
 528 
 529     return (second + minute * secondsPerMinute + hour * secondsPerHour + (mday + day - 1 + ydays) * secondsPerDay);


 530 }
 531 
 532 // We follow the recommendation of RFC 2822 to consider all
 533 // obsolete time zones not listed here equivalent to "-0000".
 534 static const struct KnownZone {
 535 #if !OS(WINDOWS)
 536     const
 537 #endif
 538         char tzName[4];
 539     int tzOffset;
 540 } known_zones[] = {
 541     { "UT", 0 },
 542     { "GMT", 0 },
 543     { "EST", -300 },
 544     { "EDT", -240 },
 545     { "CST", -360 },
 546     { "CDT", -300 },
 547     { "MST", -420 },
 548     { "MDT", -360 },
 549     { "PST", -480 },


< prev index next >