Decimal MonthInputType::parseToNumber(const String& src, const Decimal& defaultValue) const { DateComponents date; if (!parseToDateComponents(src, &date)) return defaultValue; double months = date.monthsSinceEpoch(); ASSERT(std::isfinite(months)); return Decimal::fromDouble(months); }
double MonthInputType::parseToDouble(const String& src, double defaultValue) const { DateComponents date; if (!parseToDateComponents(src, &date)) return defaultValue; double months = date.monthsSinceEpoch(); ASSERT(isfinite(months)); return months; }
Decimal MonthInputType::defaultValueForStepUp() const { double current = currentTimeMS(); double utcOffset = calculateUTCOffset(); double dstOffset = calculateDSTOffset(current, utcOffset); int offset = static_cast<int>((utcOffset + dstOffset) / msPerMinute); current += offset * msPerMinute; DateComponents date; date.setMillisecondsSinceEpochForMonth(current); double months = date.monthsSinceEpoch(); ASSERT(std::isfinite(months)); return Decimal::fromDouble(months); }