# class KCalendarSystem

### abstract

Module | kdecore
Namespace |
Class | KCalendarSystem
Inherits |

KCalendarSystem abstract base class, provides support for local Calendar Systems in KDE

Derived classes must be created through the create() static method

### enums

- MonthNameFormat { ShortName, LongName, ShortNamePossessive, LongNamePossessive }
- StringFormat { ShortFormat, LongFormat }
- WeekDayNameFormat { ShortDayName, LongDayName }

enum details

### methods

- KCalendarSystem (locale)

  returns ctor
  KDE 4.1.0 and later only

  Argument | Type | Default
  --- | --- | ---
  locale | KLocale | 0

  Constructor of abstract calendar class. This will be called by derived classes.

  locale - locale to use for translations. The global locale is used if null.

- KCalendarSystem (a0)

  returns ctor
  Not implemented

  Argument | Type | Default
  --- | --- | ---
  a0 | KCalendarSystem |

- KCalendarSystem (a0)

  returns ctor
  before KDE 4.1.0 only

  Argument | Type | Default
  --- | --- | ---
  a0 | KLocale | 0

- addDays (date, ndays)

  returns QDate

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  ndays | int |

  Returns a QDate containing a date ndays days later.

  date - The old date

  ndays - number of days to add Returns The new date, null date if any errors

- addMonths (date, nmonths)

  returns QDate

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  nmonths | int |

  Returns a QDate containing a date nmonths months later.

  date - The old date

  nmonths - number of months to add Returns The new date, null date if any errors

- addYears (date, nyears)

  returns QDate

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  nyears | int |

  Returns a QDate containing a date nyears years later.

  date - The old date

  nyears - The number of years to add Returns The new date, null date if any errors

- calendarLabel (calendarType)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  calendarType | QString |

  Returns a typographically correct and translated label to display for the calendar system type. Use with calendarSystems() to neatly format labels to display on combo widget of available calendar systems.

  calendarType - the specific calendar type to return the label for

  Returns label for calendar

- calendarSystems ( )

  returns QStringList
  static

  Gets a list of names of supported calendar systems.

  Returns list of names

- calendarType ( )

  returns QString
  pure virtual

  Returns the calendar system type.

  Returns type of calendar system

- create (calType, locale)

  returns KCalendarSystem
  static

  Argument | Type | Default
  --- | --- | ---
  calType | QString | QLatin1String("gregorian")
  locale | KLocale | 0

  Creates specific calendar type

  calType - string identification of the specific calendar type to be constructed

  locale - locale to use for translations. The global locale is used if null. Returns a KCalendarSystem object

- dateToJulianDay (year, month, day)

  returns bool, int (jd)
  pure virtual

  Argument | Type | Default
  --- | --- | ---
  year | int |
  month | int |
  day | int |

  Internal method to convert YMD values for this calendar system into a Julian Day number.

  All calendar system implementations MUST implement julianDayToDate and dateToJulianDay methods as all other methods can be expressed as functions of these. Does no internal validity checking.

  See also KCalendarSystem.julianDayToDate

  year - year number

  month - month number

  day - day of month

  jd - Julian day number returned in this variable Returns true if the date is valid, false otherwise

- day (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the day portion of a given date in the current calendar system

  date - date to return day for Returns day of the month, 0 if input date is invalid

- dayOfWeek (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the weekday number for the given date

  date - the date to obtain day from Returns day of week number, -1 if input date not valid

- dayOfYear (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the day number of year for the given date

  date - the date to obtain day from Returns day of year number, -1 if input date not valid

- dayString (pDate, format)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  pDate | QDate |
  format | KCalendarSystem.StringFormat | KCalendarSystem.LongFormat

  Converts a date into a day literal

  pDate - The date to convert

  format - The format to return, either short or long Returns The day literal of the date, empty string if any error

- dayStringToInteger (sNum)

  returns int, int (iLength)

  Argument | Type | Default
  --- | --- | ---
  sNum | QString |

  Converts a day literal of a part of a string into a integer starting at the beginning of the string

  sNum - The string to parse

  iLength - The number of QChars used, and 0 if no valid symbols was found in the string Returns An integer corresponding to the day

- daysInMonth (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the number of days in the given month.

  date - the date to obtain month from Returns number of days in month, -1 if input date invalid

- daysInWeek (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the number of days in the given week.

  date - the date to obtain week from Returns number of days in week, -1 if input date invalid

- daysInYear (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the number of days in the given year.

  date - the date to obtain year from Returns number of days in year, -1 if input date invalid

- earliestValidDate ( )

  returns QDate

  Returns the earliest date valid in this calendar system implementation.

  If the calendar system is proleptic then this may be before epoch.

  See also KCalendarSystem.epoch

  See also KCalendarSystem.latestValidDate

  Returns date the earliest valid date

- epoch ( )

  returns QDate

  Returns a QDate holding the epoch of the calendar system. Usually YMD of 1/1/1, access the returned QDates method toJulianDay() if you require the actual Julian day number. Note: a particular calendar system implementation may not include the epoch in its supported range, or the calendar system may be proleptic in which case it supports dates before the epoch.

  See also KCalendarSystem.earliestValidDate

  See also KCalendarSystem.latestValidDate

  See also KCalendarSystem.isProleptic

  See also KCalendarSystem.isValid

  Returns epoch of calendar system

- formatDate (date, format)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  format | KLocale.DateFormat | KLocale.LongDate

  Returns a string formatted to the current locale's conventions regarding dates.

  Uses the calendar system's internal locale set when the instance was created, which ensures that the correct calendar system and locale settings are respected, which would not occur in some cases if using the global locale. Defaults to global locale.

  See also KLocale.formatDate

  date - the date to be formatted

  format - category of date format to use

  Returns The date as a string

- isLeapYear (year)

  returns bool
  pure virtual

  Argument | Type | Default
  --- | --- | ---
  year | int |

  Returns whether a given year is a leap year.

  Input year must be checked for validity in current Calendar System prior to calling, no validity checking performed in this routine, behaviour is undefined in invalid case.

  year - the year to check Returns true if the year is a leap year, false otherwise

- isLeapYear (date)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns whether a given date falls in a leap year.

  Input date must be checked for validity in current Calendar System prior to calling, no validity checking performed in this routine, behaviour is undefined in invalid case.

  date - the date to check Returns true if the date falls in a leap year, false otherwise

- isLunar ( )

  returns bool
  pure virtual

  Returns whether the calendar is lunar based.

  Returns true if the calendar is lunar based, false if not

- isLunisolar ( )

  returns bool
  pure virtual

  Returns whether the calendar is lunisolar based.

  Returns true if the calendar is lunisolar based, false if not

- isProleptic ( )

  returns bool
  pure virtual

  Returns whether the calendar system is proleptic, i.e. whether dates before the epoch are supported.

  See also KCalendarSystem.epoch

  Returns true if the calendar system is proleptic, false if not

- isSolar ( )

  returns bool
  pure virtual

  Returns whether the calendar is solar based.

  Returns true if the calendar is solar based, false if not

- isValid (year, month, day)

  returns bool
  pure virtual

  Argument | Type | Default
  --- | --- | ---
  year | int |
  month | int |
  day | int |

  Returns whether a given date is valid in this calendar system.

  year - the year portion of the date to check

  month - the month portion of the date to check

  day - the day portion of the date to check Returns true if the date is valid, false otherwise

- isValid (date)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns whether a given date is valid in this calendar system.

  date - the date to check Returns true if the date is valid, false otherwise

- julianDayToDate (jd)

  returns bool, int (year), int (month), int (day)
  pure virtual

  Argument | Type | Default
  --- | --- | ---
  jd | int |

  Internal method to convert a Julian Day number into the YMD values for this calendar system.

  All calendar system implementations MUST implement julianDayToDate and dateToJulianDay methods as all other methods can be expressed as functions of these. Does no internal validity checking.

  See also KCalendarSystem.dateToJulianDay

  jd - Julian day number to convert to date

  year - year number returned in this variable

  month - month number returned in this variable

  day - day of month returned in this variable Returns true if the date is valid, false otherwise

- latestValidDate ( )

  returns QDate

  Returns the latest date valid in this calendar system implementation.

  See also KCalendarSystem.epoch

  See also KCalendarSystem.earliestValidDate

  Returns date the latest valid date

- locale ( )

  returns KLocale

  Returns the locale used for translations and formats for this calendar system instance. This allows a calendar system instance to be independent of the global translations and formats if required. All implementations must refer to this locale.

  Only for internal calendar system use; if public access is required then provide public methods only for those methods actually required. Any app that creates an instance with its own locale overriding global will have the original handle to the locale and can manipulate it that way if required, e.g. to change default date format. Only expose those methods that library widgets require access to internally.

  See also KCalendarSystem.formatDate

  See also KLocale.formatDate

  See also KCalendarSystem.weekStartDay

  See also KLocale.weekStartDay

  See also KCalendarSystem.readDate

  See also KLoacle.readDate

  Returns locale to use

- month (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the month portion of a given date in the current calendar system

  date - date to return month for Returns month of year, 0 if input date is invalid

- monthName (month, year, format)

  returns QString
  pure virtual

  Argument | Type | Default
  --- | --- | ---
  month | int |
  year | int |
  format | KCalendarSystem.MonthNameFormat | KCalendarSystem.LongName

  Gets specific calendar type month name for a given month number If an invalid month is specified, QString() is returned.

  month - the month number

  year - the year the month belongs to

  format - specifies whether the short month name or long month name should be used Returns name of the month, empty string if any error

- monthName (date, format)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  format | KCalendarSystem.MonthNameFormat | KCalendarSystem.LongName

  Gets specific calendar type month name for a given date

  date - date to obtain month from

  format - specifies whether the short month name or long month name should be used Returns name of the month, empty string if any error

- monthString (pDate, format)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  pDate | QDate |
  format | KCalendarSystem.StringFormat | KCalendarSystem.LongFormat

  Converts a date into a month literal

  pDate - The date to convert

  format - The format to return, either short or long Returns The month literal of the date, empty string if any error

- monthStringToInteger (sNum)

  returns int, int (iLength)

  Argument | Type | Default
  --- | --- | ---
  sNum | QString |

  Converts a month literal of a part of a string into a integer starting at the beginning of the string

  sNum - The string to parse

  iLength - The number of QChars used, and 0 if no valid symbols was found in the string Returns An integer corresponding to the month

- monthsInYear (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns number of months in the given year

  date - the date to obtain year from Returns number of months in the year, -1 if input date invalid

- readDate (str)

  returns QDate, bool (ok)

  Argument | Type | Default
  --- | --- | ---
  str | QString |

  Converts a localized date string to a QDate. The bool pointed by ok will be false if the date entered was invalid.

  Uses the calendar system's internal locale set when the instance was created, which ensures that the correct calendar system and locale settings are respected, which would not occur in some cases if using the global locale. Defaults to global locale.

  See also KLocale.readDate

  str - the string to convert

  ok - if non-null, will be set to true if the date is valid, false if invalid

  Returns the string converted to a QDate

- readDate (intstr, format)

  returns QDate, bool (ok)

  Argument | Type | Default
  --- | --- | ---
  intstr | QString |
  format | QString |

  Converts a localized date string to a QDate, using the specified format. You will usually not want to use this method.

  See also KLocale.readDate

- readDate (str, flags)

  returns QDate, bool (ok)

  Argument | Type | Default
  --- | --- | ---
  str | QString |
  flags | KLocale.ReadDateFlags |

  Converts a localized date string to a QDate. This method is stricter than readDate(str,&ok): it will either accept a date in full format or a date in short format, depending on flags.

  Uses the calendar system's internal locale set when the instance was created, which ensures that the correct calendar system and locale settings are respected, which would not occur in some cases if using the global locale. Defaults to global locale.

  See also KLocale.readDate

  str - the string to convert

  flags - whether the date string is to be in full format or in short format

  ok - if non-null, will be set to true if the date is valid, false if invalid

  Returns the string converted to a QDate

- setDate (date, year, month, day)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  year | int |
  month | int |
  day | int |

  Changes the date's year, month and day. The range of the year, month and day depends on which calendar is being used. All years entered are treated literally, i.e. no Y2K translation is applied to years entered in the range 00 to 99. Replaces setYMD.

  date - date to change

  year - year

  month - month number

  day - day of month Returns true if the date is valid, false otherwise

- setYMD (date, y, m, d)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  y | int |
  m | int |
  d | int |

  Deprecated

  Use setDate instead

  See also KCalendarSystem.setDate

  Some implementations reject year range 00 to 99, but extended date ranges now require these to be accepted. Equivalent in QDate is obsoleted.

  Changes the date's year, month and day. The range of the year, month and day depends on which calendar is being used.

  date - Date to change

  y - Year

  m - Month number

  d - Day of month Returns true if the date is valid; otherwise returns false.

- weekDayName (weekDay, format)

  returns QString
  pure virtual

  Argument | Type | Default
  --- | --- | ---
  weekDay | int |
  format | KCalendarSystem.WeekDayNameFormat | KCalendarSystem.LongDayName

  Gets specific calendar type week day name. If an invalid week day is specified, QString() is returned.

  weekDay - number of day in week (Monday = 1, ..., Sunday = 7)

  format - specifies whether the short month name or long month name should be used Returns day name, empty string if any error

- weekDayName (date, format)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  format | KCalendarSystem.WeekDayNameFormat | KCalendarSystem.LongDayName

  Gets specific calendar type week day name.

  date - the date

  format - specifies whether the short month name or long month name should be used Returns day name, empty string if any error

- weekDayOfPray ( )

  returns int
  pure virtual

  Gets the day of the week traditionally associated with prayer.

  Returns day number (Monday = 1, ..., Sunday = 7)

- weekNumber (date, yearNum)

  returns int, int (yearNum)

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  yearNum | int | 0

  Returns the ISO week number for the given date.

  ISO 8601 defines the first week of the year as the week containing the first Thursday. See http://en.wikipedia.org/wiki/ISO_8601 and http://en.wikipedia.org/wiki/ISO_week_date

  If the date falls in the last week of the previous year or the first week of the following year, then the yearNum returned will be set to the appropriate year.

  date - the date to obtain week from

  yearNum - returns the year the date belongs to Returns ISO week number, -1 if input date invalid

- weekStartDay ( )

  returns int

  Use this to determine which day is the first day of the week.

  Uses the calendar system's internal locale set when the instance was created, which ensures that the correct calendar system and locale settings are respected, which would not occur in some cases if using the global locale. Defaults to global locale.

  See also KLocale.weekStartDay

  Returns an integer (Monday = 1, ..., Sunday = 7)

- weeksInYear (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the number of ISO weeks in the given year.

  date - the date to obtain year from Returns number of weeks in the year, -1 if input date invalid

- weeksInYear (year)

  returns int

  Argument | Type | Default
  --- | --- | ---
  year | int |

  Returns the number of ISO weeks in the given year.

  ISO 8601 defines the first week of the year as the week containing the first Thursday. See http://en.wikipedia.org/wiki/ISO_8601 and http://en.wikipedia.org/wiki/ISO_week_date

  year - the year Returns number of weeks in the year, -1 if input date invalid

- year (date)

  returns int

  Argument | Type | Default
  --- | --- | ---
  date | QDate |

  Returns the year portion of a given date in the current calendar system

  date - date to return year for Returns year, 0 if input date is invalid

- yearString (date, format)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  date | QDate |
  format | KCalendarSystem.StringFormat | KCalendarSystem.LongFormat

  Converts a date into a year literal

  date - date to convert

  format - format to return, either short or long Returns year literal of the date, empty string if any error

- yearStringToInteger (sNum)

  returns int, int (iLength)

  Argument | Type | Default
  --- | --- | ---
  sNum | QString |

  Converts a year literal of a part of a string into a integer starting at the beginning of the string

  sNum - The string to parse

  iLength - The number of QChars used, and 0 if no valid symbols was found in the string Returns An integer corresponding to the year

### enums - detail

- MonthNameFormat { ShortName, LongName, ShortNamePossessive, LongNamePossessive }

  Format for returned month / day name.

  | ShortName | - | - |
  | LongName | - | - |
  | ShortNamePossessive | - | - |
  | LongNamePossessive | - | - |

- StringFormat { ShortFormat, LongFormat }

  Format for returned year number / month number / day number as string.

  | ShortFormat | - | - |
  | LongFormat | - | - |

- WeekDayNameFormat { ShortDayName, LongDayName }

  Format for returned month / day name.

  | ShortDayName | - | - |
  | LongDayName | - | - |