// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ****************************************************************************** * Copyright (C) 2003-2016, International Business Machines Corporation * and others. All Rights Reserved. ****************************************************************************** * * File HEBRWCAL.CPP * * Modification History: * * Date Name Description * 12/03/2003 srl ported from java HebrewCalendar ***************************************************************************** */ #include "hebrwcal.h" #if !UCONFIG_NO_FORMATTING #include "cmemory.h" #include "cstring.h" #include "umutex.h" #include <float.h> #include "gregoimp.h" // ClockMath #include "astro.h" // CalendarCache #include "uhash.h" #include "ucln_in.h" // Hebrew Calendar implementation /** * The absolute date, in milliseconds since 1/1/1970 AD, Gregorian, * of the start of the Hebrew calendar. In order to keep this calendar's * time of day in sync with that of the Gregorian calendar, we use * midnight, rather than sunset the day before. */ //static const double EPOCH_MILLIS = -180799862400000.; // 1/1/1 HY static const int32_t LIMITS[UCAL_FIELD_COUNT][4] = …; /** * The lengths of the Hebrew months. This is complicated, because there * are three different types of years, or six if you count leap years. * Due to the rules for postponing the start of the year to avoid having * certain holidays fall on the sabbath, the year can end up being three * different lengths, called "deficient", "normal", and "complete". */ static const int8_t MONTH_LENGTH[][3] = …; /** * The cumulative # of days to the end of each month in a non-leap year * Although this can be calculated from the MONTH_LENGTH table, * keeping it around separately makes some calculations a lot faster */ static const int16_t MONTH_START[][3] = …; /** * The cumulative # of days to the end of each month in a leap year */ static const int16_t LEAP_MONTH_START[][3] = …; static icu::CalendarCache *gCache = …; U_CDECL_BEGIN static UBool calendar_hebrew_cleanup() { … } U_CDECL_END U_NAMESPACE_BEGIN #endif // UCONFIG_NO_FORMATTING