static LongRange dateStructureToTimestampRange(DateStructures.SomeDate d) { ret dateStructureToTimestampRange(d, localTimeZone(), now(), true); } static LongRange dateStructureToTimestampRange(DateStructures.SomeDate d, TimeZone tz, long now, bool assumeFuture) { delegate Day to DateStructures. delegate Month to DateStructures. delegate Year to DateStructures. delegate CurrentWeekPlus to DateStructures. delegate CurrentMonthPlus to DateStructures. delegate CurrentYearPlus to DateStructures. delegate Weekday to DateStructures. delegate TodayPlus to DateStructures. // year if (d cast CurrentYearPlus) d = new Year(year(now) + d.nYears); if (d cast Year) ret longRange(yearToTimestamp(d.year, tz), yearToTimestamp(d.year+1, tz)); // month if (d cast CurrentMonthPlus) d = new Month(month(now) + d.nMonths, new Year(year(now))); if (d cast Month) { int year = ((Year) d.year).year; ret longRange( yearAndMonthToTimestamp(year, d.month, tz), yearAndMonthToTimestamp(year, d.month+1, tz)); } fail("dateStructureToTimestampRange: unknown type" + d); }