Logo Search packages:      
Sourcecode: icu version File versions  Download package

JapaneseCalendar Class Reference

#include <japancal.h>

Inheritance diagram for JapaneseCalendar:

GregorianCalendar Calendar UObject UMemory

List of all members.


Detailed Description

Concrete class which provides the Japanese calendar.

JapaneseCalendar is a subclass of GregorianCalendar that numbers years and eras based on the reigns of the Japanese emperors. The Japanese calendar is identical to the Gregorian calendar in all respects except for the year and era. The ascension of each emperor to the throne begins a new era, and the years of that era are numbered starting with the year of ascension as year 1.

Note that in the year of an imperial ascension, there are two possible sets of year and era values: that for the old era and for the new. For example, a new era began on January 7, 1989 AD. Strictly speaking, the first six days of that year were in the Showa era, e.g. "January 6, 64 Showa", while the rest of the year was in the Heisei era, e.g. "January 7, 1 Heisei". This class handles this distinction correctly when computing dates. However, in lenient mode either form of date is acceptable as input.

In modern times, eras have started on January 8, 1868 AD, Gregorian (Meiji), July 30, 1912 (Taisho), December 25, 1926 (Showa), and January 7, 1989 (Heisei). Constants for these eras, suitable for use in the UCAL_ERA field, are provided in this class. Note that the number used for each era is more or less arbitrary. Currently, the era starting in 1053 AD is era #0; however this may change in the future as we add more historical data. Use the predefined constants rather than using actual, absolute numbers.

For internal use only.

Definition at line 56 of file japancal.h.


Public Types

enum  EAmpm { AM, PM }
enum  EDateFields {
  ERA, YEAR, MONTH, WEEK_OF_YEAR,
  WEEK_OF_MONTH, DATE, DAY_OF_YEAR, DAY_OF_WEEK,
  DAY_OF_WEEK_IN_MONTH, AM_PM, HOUR, HOUR_OF_DAY,
  MINUTE, SECOND, MILLISECOND, ZONE_OFFSET,
  DST_OFFSET, YEAR_WOY, DOW_LOCAL, EXTENDED_YEAR,
  JULIAN_DAY, MILLISECONDS_IN_DAY, IS_LEAP_MONTH, FIELD_COUNT = UCAL_FIELD_COUNT
}
enum  EDaysOfWeek {
  SUNDAY = 1, MONDAY, TUESDAY, WEDNESDAY,
  THURSDAY, FRIDAY, SATURDAY
}
enum  EEras { BC, AD }
enum  EMonths {
  JANUARY, FEBRUARY, MARCH, APRIL,
  MAY, JUNE, JULY, AUGUST,
  SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER,
  UNDECIMBER
}

Public Member Functions

virtual void add (UCalendarDateFields field, int32_t amount, UErrorCode &status)
virtual void add (EDateFields field, int32_t amount, UErrorCode &status)
void adoptTimeZone (TimeZone *value)
UBool after (const Calendar &when, UErrorCode &status) const
UBool before (const Calendar &when, UErrorCode &status) const
void clear (UCalendarDateFields field)
void clear (EDateFields field)
void clear (void)
virtual Calendarclone (void) const
virtual UDate defaultCenturyStart () const
virtual int32_t defaultCenturyStartYear () const
UBool equals (const Calendar &when, UErrorCode &status) const
virtual int32_t fieldDifference (UDate when, UCalendarDateFields field, UErrorCode &status)
virtual int32_t fieldDifference (UDate when, EDateFields field, UErrorCode &status)
int32_t get (UCalendarDateFields field, UErrorCode &status) const
int32_t get (EDateFields field, UErrorCode &status) const
int32_t getActualMaximum (EDateFields field, UErrorCode &status) const
int32_t getActualMaximum (EDateFields field) const
virtual int32_t getActualMaximum (UCalendarDateFields field, UErrorCode &status) const
int32_t getActualMinimum (UCalendarDateFields field, UErrorCode &status) const
int32_t getActualMinimum (EDateFields field, UErrorCode &status) const
int32_t getActualMinimum (EDateFields field) const
virtual UClassID getDynamicClassID (void) const
UCalendarDaysOfWeek getFirstDayOfWeek (UErrorCode &status) const
EDaysOfWeek getFirstDayOfWeek (void) const
virtual int32_t getGreatestMinimum (UCalendarDateFields field) const
virtual int32_t getGreatestMinimum (EDateFields field) const
UDate getGregorianChange (void) const
virtual int32_t getLeastMaximum (UCalendarDateFields field) const
virtual int32_t getLeastMaximum (EDateFields field) const
Locale getLocale (ULocDataLocaleType type, UErrorCode &status) const
const char * getLocaleID (ULocDataLocaleType type, UErrorCode &status) const
virtual int32_t getMaximum (UCalendarDateFields field) const
virtual int32_t getMaximum (EDateFields field) const
uint8_t getMinimalDaysInFirstWeek (void) const
virtual int32_t getMinimum (UCalendarDateFields field) const
virtual int32_t getMinimum (EDateFields field) const
UDate getTime (UErrorCode &status) const
const TimeZonegetTimeZone (void) const
virtual const char * getType () const
virtual int32_t handleGetExtendedYear ()
virtual UBool haveDefaultCentury () const
virtual UBool inDaylightTime (UErrorCode &status) const
virtual UBool isEquivalentTo (const Calendar &other) const
UBool isLeapYear (int32_t year) const
UBool isLenient (void) const
UBool isSet (UCalendarDateFields field) const
UBool isSet (EDateFields field) const
 JapaneseCalendar (const JapaneseCalendar &source)
 JapaneseCalendar (const Locale &aLocale, UErrorCode &success)
UBool operator!= (const Calendar &that) const
JapaneseCalendaroperator= (const JapaneseCalendar &right)
virtual UBool operator== (const Calendar &that) const
TimeZoneorphanTimeZone (void)
void roll (UCalendarDateFields field, UBool up, UErrorCode &status)
void roll (EDateFields field, UBool up, UErrorCode &status)
virtual void roll (UCalendarDateFields field, int32_t amount, UErrorCode &status)
virtual void roll (EDateFields field, int32_t amount, UErrorCode &status)
void set (int32_t year, int32_t month, int32_t date, int32_t hour, int32_t minute, int32_t second)
void set (int32_t year, int32_t month, int32_t date, int32_t hour, int32_t minute)
void set (int32_t year, int32_t month, int32_t date)
void set (UCalendarDateFields field, int32_t value)
void set (EDateFields field, int32_t value)
void setFirstDayOfWeek (UCalendarDaysOfWeek value)
void setFirstDayOfWeek (EDaysOfWeek value)
void setGregorianChange (UDate date, UErrorCode &success)
void setLenient (UBool lenient)
void setMinimalDaysInFirstWeek (uint8_t value)
void setTime (UDate date, UErrorCode &status)
void setTimeZone (const TimeZone &zone)
virtual ~JapaneseCalendar ()

Static Public Member Functions

static Calendar *U_EXPORT2 createInstance (const TimeZone &zoneToAdopt, const Locale &aLocale, UErrorCode &success)
static Calendar *U_EXPORT2 createInstance (TimeZone *zoneToAdopt, const Locale &aLocale, UErrorCode &success)
static Calendar *U_EXPORT2 createInstance (const Locale &aLocale, UErrorCode &success)
static Calendar *U_EXPORT2 createInstance (const TimeZone &zone, UErrorCode &success)
static Calendar *U_EXPORT2 createInstance (TimeZone *zoneToAdopt, UErrorCode &success)
static Calendar *U_EXPORT2 createInstance (UErrorCode &success)
static StringEnumerationgetAvailableLocales (void)
static const Locale *U_EXPORT2 getAvailableLocales (int32_t &count)
static U_I18N_API uint32_t
U_EXPORT2 
getCurrentEra (void)
static StringEnumeration *U_EXPORT2 getKeywordValuesForLocale (const char *key, const Locale &locale, UBool commonlyUsed, UErrorCode &status)
static UDate U_EXPORT2 getNow (void)
static U_I18N_API UClassID
U_EXPORT2 
getStaticClassID (void)
static void U_EXPORT2 operator delete (void *, void *) U_NO_THROW
static void U_EXPORT2 operator delete (void *p) U_NO_THROW
static void U_EXPORT2 operator delete[] (void *p) U_NO_THROW
static void *U_EXPORT2 operator new (size_t, void *ptr) U_NO_THROW
static void *U_EXPORT2 operator new (size_t size) U_NO_THROW
static void *U_EXPORT2 operator new[] (size_t size) U_NO_THROW
static URegistryKey registerFactory (ICUServiceFactory *toAdopt, UErrorCode &status)
static UBool unregister (URegistryKey key, UErrorCode &status)

Protected Types

enum  { kResolveSTOP = -1, kResolveRemap = 32 }
enum  { kUnset = 0, kInternallySet, kMinimumUserStamp }
enum  ELimitType {
  UCAL_LIMIT_MINIMUM = 0, UCAL_LIMIT_GREATEST_MINIMUM, UCAL_LIMIT_LEAST_MAXIMUM, UCAL_LIMIT_MAXIMUM,
  UCAL_LIMIT_COUNT
}

Protected Member Functions

void complete (UErrorCode &status)
virtual void computeFields (UErrorCode &status)
void computeGregorianFields (int32_t julianDay, UErrorCode &ec)
int32_t computeJulianDay ()
int32_t computeMillisInDay ()
virtual void computeTime (UErrorCode &status)
int32_t computeZoneOffset (double millis, int32_t millisInDay, UErrorCode &ec)
virtual int32_t getDefaultDayInMonth (int32_t eyear, int32_t month)
virtual int32_t getDefaultMonthInYear (int32_t eyear)
virtual UDate getEpochDay (UErrorCode &status)
virtual const
UFieldResolutionTable
getFieldResolutionTable () const
int32_t getGregorianDayOfMonth () const
int32_t getGregorianDayOfYear () const
int32_t getGregorianMonth () const
int32_t getGregorianYear () const
virtual int32_t getLimit (UCalendarDateFields field, ELimitType limitType) const
int32_t getLocalDOW ()
double getTimeInMillis (UErrorCode &status) const
virtual void handleComputeFields (int32_t julianDay, UErrorCode &status)
virtual int32_t handleComputeJulianDay (UCalendarDateFields bestField)
virtual int32_t handleComputeMonthStart (int32_t eyear, int32_t month, UBool useMonth) const
virtual int32_t handleGetExtendedYearFromWeekFields (int32_t yearWoy, int32_t woy)
virtual int32_t handleGetLimit (UCalendarDateFields field, ELimitType limitType) const
virtual int32_t handleGetMonthLength (int32_t extendedYear, int32_t month) const
virtual int32_t handleGetYearLength (int32_t eyear) const
int32_t internalGet (UCalendarDateFields field) const
int32_t internalGet (UCalendarDateFields field, int32_t defaultValue) const
int32_t internalGet (EDateFields field) const
virtual int32_t internalGetEra () const
UDate internalGetTime (void) const
void internalSet (UCalendarDateFields field, int32_t value)
void internalSet (EDateFields field, int32_t value)
void internalSetTime (UDate time)
virtual int32_t monthLength (int32_t month, int32_t year) const
virtual int32_t monthLength (int32_t month) const
UCalendarDateFields newerField (UCalendarDateFields defaultField, UCalendarDateFields alternateField) const
int32_t newestStamp (UCalendarDateFields start, UCalendarDateFields end, int32_t bestSoFar) const
void pinDayOfMonth (void)
virtual void pinField (UCalendarDateFields field, UErrorCode &status)
virtual void prepareGetActual (UCalendarDateFields field, UBool isMinimum, UErrorCode &status)
UCalendarDateFields resolveFields (const UFieldResolutionTable *precedenceTable)
void setTimeInMillis (double millis, UErrorCode &status)
int32_t weekNumber (int32_t dayOfPeriod, int32_t dayOfWeek)
int32_t weekNumber (int32_t desiredDay, int32_t dayOfPeriod, int32_t dayOfWeek)
int32_t yearLength (void) const
int32_t yearLength (int32_t year) const

Static Protected Member Functions

static uint8_t julianDayToDayOfWeek (double julian)

Protected Attributes

UBool fAreAllFieldsSet
UBool fAreFieldsSet
UBool fAreFieldsVirtuallySet
int32_t fFields [UCAL_FIELD_COUNT]
UBool fIsSet [UCAL_FIELD_COUNT]
UBool fIsTimeSet
int32_t fStamp [UCAL_FIELD_COUNT]

Static Protected Attributes

static const UFieldResolutionTable kDatePrecedence []
static const UFieldResolutionTable kDOWPrecedence []
static const UFieldResolutionTable kYearPrecedence []

Friends

class CalendarFactory
class CalendarService
class DefaultCalendarFactory

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index