KCalendarSystem

Search for usage in LXR

#include <kcalendarsystem.h>

Public Types

enum  MonthNameFormat {
  ShortName, LongName, ShortNamePossessive, LongNamePossessive,
  NarrowName
}
 
enum  StringFormat { ShortFormat, LongFormat }
 
enum  WeekDayNameFormat { ShortDayName, LongDayName, NarrowDayName }
 

Public Member Functions

virtual ~KCalendarSystem ()
 
QDate addDays (const QDate &date, int ndays) const
 
virtual QDate addMonths (const QDate &date, int nmonths) const
 
virtual QDate addYears (const QDate &date, int nyears) const
 
int applyShortYearWindow (int inputYear) const
 
QString calendarLabel () const
 
virtual KLocale::CalendarSystem calendarSystem () const =0
 
virtual QString calendarType () const =0
 
void dateDifference (const QDate &fromDate, const QDate &toDate, int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const
 
virtual int day (const QDate &date) const
 
int dayOfWeek (const QDate &date) const
 
QString dayOfWeekString (const QDate &date) const
 
virtual int dayOfYear (const QDate &date) const
 
QString dayOfYearString (const QDate &date, StringFormat format=LongFormat) const
 
int daysDifference (const QDate &fromDate, const QDate &toDate) const
 
int daysInMonth (const QDate &date) const
 
int daysInMonth (int year, int month) const
 
QString daysInMonthString (const QDate &date, StringFormat format=LongFormat) const
 
int daysInWeek (const QDate &date) const
 
QString daysInWeekString (const QDate &date) const
 
int daysInYear (const QDate &date) const
 
int daysInYear (int year) const
 
QString daysInYearString (const QDate &date, StringFormat format=LongFormat) const
 
virtual QString dayString (const QDate &date, StringFormat format=LongFormat) const
 
virtual int dayStringToInteger (const QString &sNum, int &iLength) const
 
virtual QDate earliestValidDate () const =0
 
virtual QDate epoch () const =0
 
QString eraName (const QDate &date, StringFormat format=ShortFormat) const
 
QString eraYear (const QDate &date, StringFormat format=ShortFormat) const
 
QDate firstDayOfMonth (const QDate &date=QDate::currentDate()) const
 
QDate firstDayOfMonth (int year, int month) const
 
QDate firstDayOfYear (const QDate &date=QDate::currentDate()) const
 
QDate firstDayOfYear (int year) const
 
QString formatDate (const QDate &date, KLocale::DateTimeComponent component, KLocale::DateTimeComponentFormat format=KLocale::DefaultComponentFormat, KLocale::WeekNumberSystem weekNumberSystem=KLocale::DefaultWeekNumber) const
 
QString formatDate (const QDate &fromDate, const QString &toFormat, KLocale::DateTimeFormatStandard formatStandard=KLocale::KdeFormat) const
 
QString formatDate (const QDate &fromDate, const QString &toFormat, KLocale::DigitSet digitSet, KLocale::DateTimeFormatStandard formatStandard=KLocale::KdeFormat) const
 
virtual QString formatDate (const QDate &fromDate, KLocale::DateFormat toFormat=KLocale::LongDate) const
 
void getDate (const QDate date, int *year, int *month, int *day) const
 
bool isLeapYear (const QDate &date) const
 
bool isLeapYear (int year) const
 
virtual bool isLunar () const =0
 
virtual bool isLunisolar () const =0
 
virtual bool isProleptic () const =0
 
virtual bool isSolar () const =0
 
bool isValid (const QDate &date) const
 
bool isValid (const QString &eraName, int yearInEra, int month, int day) const
 
bool isValid (int year, int dayOfYear) const
 
bool isValid (int year, int month, int day) const
 
bool isValidIsoWeekDate (int year, int isoWeekNumber, int dayOfIsoWeek) const
 
QDate lastDayOfMonth (const QDate &date=QDate::currentDate()) const
 
QDate lastDayOfMonth (int year, int month) const
 
QDate lastDayOfYear (const QDate &date=QDate::currentDate()) const
 
QDate lastDayOfYear (int year) const
 
virtual QDate latestValidDate () const =0
 
virtual int month (const QDate &date) const
 
virtual QString monthName (const QDate &date, MonthNameFormat format=LongName) const
 
virtual QString monthName (int month, int year, MonthNameFormat format=LongName) const =0
 
int monthsDifference (const QDate &fromDate, const QDate &toDate) const
 
int monthsInYear (const QDate &date) const
 
int monthsInYear (int year) const
 
QString monthsInYearString (const QDate &date, StringFormat format=LongFormat) const
 
virtual QString monthString (const QDate &date, StringFormat format=LongFormat) const
 
virtual int monthStringToInteger (const QString &sNum, int &iLength) const
 
QDate readDate (const QString &dateString, const QString &dateFormat, bool *ok, KLocale::DateTimeFormatStandard formatStandard) const
 
virtual QDate readDate (const QString &dateString, const QString &dateFormat, bool *ok=nullptr) const
 
virtual QDate readDate (const QString &str, bool *ok=nullptr) const
 
virtual QDate readDate (const QString &str, KLocale::ReadDateFlags flags, bool *ok=nullptr) const
 
bool setDate (QDate &date, int year, int dayOfYear) const
 
virtual bool setDate (QDate &date, int year, int month, int day) const
 
bool setDate (QDate &date, QString eraName, int yearInEra, int month, int day) const
 
bool setDateIsoWeek (QDate &date, int year, int isoWeekNumber, int dayOfIsoWeek) const
 
virtual bool setYMD (QDate &date, int y, int m, int d) const
 
int shortYearWindowStartYear () const
 
int week (const QDate &date, int *yearNum) const
 
int week (const QDate &date, KLocale::WeekNumberSystem weekNumberSystem=KLocale::DefaultWeekNumber, int *yearNum=nullptr) const
 
virtual QString weekDayName (const QDate &date, WeekDayNameFormat format=LongDayName) const
 
virtual QString weekDayName (int weekDay, WeekDayNameFormat format=LongDayName) const =0
 
int weekDayOfPray () const
 
int weekNumber (const QDate &date, int *yearNum=nullptr) const
 
QString weekNumberString (const QDate &date, StringFormat format=LongFormat) const
 
int weeksInYear (const QDate &date, KLocale::WeekNumberSystem weekNumberSystem=KLocale::DefaultWeekNumber) const
 
int weeksInYear (int year, KLocale::WeekNumberSystem weekNumberSystem=KLocale::DefaultWeekNumber) const
 
QString weeksInYearString (const QDate &date, StringFormat format=LongFormat) const
 
int weekStartDay () const
 
virtual int year (const QDate &date) const
 
int yearInEra (const QDate &date) const
 
QString yearInEraString (const QDate &date, StringFormat format=ShortFormat) const
 
int yearsDifference (const QDate &fromDate, const QDate &toDate) const
 
virtual QString yearString (const QDate &date, StringFormat format=LongFormat) const
 
virtual int yearStringToInteger (const QString &sNum, int &iLength) const
 

Static Public Member Functions

static QString calendarLabel (KLocale::CalendarSystem calendarSystem, const KLocale *locale=KLocale::global())
 
static QList< KLocale::CalendarSystemcalendarSystemsList ()
 
static KCalendarSystemcreate (KLocale::CalendarSystem calendarSystem, const KLocale *locale)
 
static KCalendarSystemcreate (KLocale::CalendarSystem calendarSystem=KLocale::QDateCalendar, KSharedConfig::Ptr config=KSharedConfig::Ptr(), const KLocale *locale=nullptr)
 

Protected Member Functions

 KCalendarSystem (KCalendarSystemPrivate &dd, const KSharedConfig::Ptr config, const KLocale *locale)
 
virtual bool dateToJulianDay (int year, int month, int day, qint64 &jd) const =0
 
virtual bool julianDayToDate (qint64 jd, int &year, int &month, int &day) const =0
 
const KLocalelocale () const
 

Protected Attributes

KCalendarSystemPrivate *const d_ptr
 

Detailed Description

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

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

Definition at line 39 of file kcalendarsystem.h.

Member Enumeration Documentation

◆ MonthNameFormat

Format for returned month / day name.

Enumerator
ShortName 

Short name format, e.g.

"Dec"

LongName 

Long name format, e.g.

"December"

ShortNamePossessive 

Short name possessive format, e.g.

"of Dec"

LongNamePossessive 

Long name possessive format, e.g.

"of December"

NarrowName 

Narrow name format, e.g.

"D".

Since
4.7

Definition at line 54 of file kcalendarsystem.h.

◆ StringFormat

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

Enumerator
ShortFormat 

Short string format, e.g.

2000 = "00" or 6 = "6"

LongFormat 

Long string format, e.g.

2000 = "2000" or 6 = "06"

Definition at line 46 of file kcalendarsystem.h.

◆ WeekDayNameFormat

Format for returned month / day name.

Enumerator
ShortDayName 

Short name format, e.g.

"Fri"

LongDayName 

Long name format, e.g.

"Friday"

NarrowDayName 

Narrow name format, e.g.

"F".

Since
4.7

Definition at line 65 of file kcalendarsystem.h.

Constructor & Destructor Documentation

◆ ~KCalendarSystem()

KCalendarSystem::~KCalendarSystem ( )
virtual

Destructor.

Definition at line 773 of file kcalendarsystem.cpp.

◆ KCalendarSystem()

KCalendarSystem::KCalendarSystem ( KCalendarSystemPrivate &  dd,
const KSharedConfig::Ptr  config,
const KLocale locale 
)
protected

Constructor of abstract calendar class.

This will be called by derived classes.

Parameters
ddderived private d-pointer.
configa configuration file with a 'KCalendarSystem calendarName' group detailing locale-related preferences (such as era options). The global config is used if null.
localelocale to use for translations. The global locale is used if null.

Definition at line 766 of file kcalendarsystem.cpp.

Member Function Documentation

◆ addDays()

QDate KCalendarSystem::addDays ( const QDate date,
int  ndays 
) const
inline

Returns a QDate containing a date ndays days later.

Parameters
dateThe old date
ndaysnumber of days to add
Returns
The new date, null date if any errors

Definition at line 424 of file kcalendarsystem.h.

◆ addMonths()

QDate KCalendarSystem::addMonths ( const QDate date,
int  nmonths 
) const
virtual

Returns a QDate containing a date nmonths months later.

Parameters
dateThe old date
nmonthsnumber of months to add
Returns
The new date, null date if any errors

Definition at line 1083 of file kcalendarsystem.cpp.

◆ addYears()

QDate KCalendarSystem::addYears ( const QDate date,
int  nyears 
) const
virtual

Returns a QDate containing a date nyears years later.

Parameters
dateThe old date
nyearsThe number of years to add
Returns
The new date, null date if any errors

Definition at line 1055 of file kcalendarsystem.cpp.

◆ applyShortYearWindow()

int KCalendarSystem::applyShortYearWindow ( int  inputYear) const
Since
4.6

Returns the Year Number after applying the Year Window.

If the inputYear is between 0 and 99, then apply the Year Window and return the calculated Year Number.

If the inputYear is not between 0 and 99, then the original Year Number is returned.

See also
KLocale::setYearWindowOffset
KLocale::yearWindowOffset
Parameters
inputYearthe year number to apply the year window to
Returns
the year number after applying the year window

Definition at line 1869 of file kcalendarsystem.cpp.

◆ calendarLabel() [1/2]

QString KCalendarSystem::calendarLabel ( ) const
Since
4.6

Returns a localized label to display for the current Calendar System type.

Returns
localized label for this Calendar System

Definition at line 779 of file kcalendarsystem.cpp.

◆ calendarLabel() [2/2]

QString KCalendarSystem::calendarLabel ( KLocale::CalendarSystem  calendarSystem,
const KLocale locale = KLocale::global() 
)
static
Since
4.6

Returns a localized label to display for the required Calendar System type.

Use with calendarSystemsList() to populate selection lists of available calendar systems.

Parameters
calendarSystemthe specific calendar type to return the label for
localethe locale to use for the label, defaults to global
Returns
label for calendar

Definition at line 102 of file kcalendarsystem.cpp.

◆ calendarSystem()

virtual KLocale::CalendarSystem KCalendarSystem::calendarSystem ( ) const
pure virtual
Since
4.6

Returns the Calendar System type of the KCalendarSystem object

Returns
type of calendar system

◆ calendarSystemsList()

QList< KLocale::CalendarSystem > KCalendarSystem::calendarSystemsList ( )
static
Since
4.6

Returns the list of currently supported Calendar Systems

Returns
list of Calendar Systems

Definition at line 83 of file kcalendarsystem.cpp.

◆ calendarType()

virtual QString KCalendarSystem::calendarType ( ) const
pure virtual
Deprecated:
use calendarSystem() instead

Returns the calendar system type.

Returns
type of calendar system

◆ create() [1/2]

KCalendarSystem * KCalendarSystem::create ( KLocale::CalendarSystem  calendarSystem,
const KLocale locale 
)
static
Since
4.6

Creates a KCalendarSystem object for the required Calendar System

Parameters
calendarSystemthe Calendar System to create, defaults to QDate compatible
localelocale to use for translations. The global locale is used if null.
Returns
a KCalendarSystem object

Definition at line 46 of file kcalendarsystem.cpp.

◆ create() [2/2]

KCalendarSystem * KCalendarSystem::create ( KLocale::CalendarSystem  calendarSystem = KLocale::QDateCalendar,
KSharedConfig::Ptr  config = KSharedConfig::Ptr(),
const KLocale locale = nullptr 
)
static
Since
4.6

Creates a KCalendarSystem object for the required Calendar System

Parameters
calendarSystemthe Calendar System to create
configa configuration file with a 'KCalendarSystem calendarType' group detailing locale-related preferences (such as era options). The global config is used if null.
localelocale to use for translations. The global locale is used if null.
Returns
a KCalendarSystem object

Definition at line 51 of file kcalendarsystem.cpp.

◆ dateDifference()

void KCalendarSystem::dateDifference ( const QDate fromDate,
const QDate toDate,
int *  yearsDiff,
int *  monthsDiff,
int *  daysDiff,
int *  direction 
) const

Returns the difference between two dates in years, months and days.

The difference is always caculated from the earlier date to the later date in year, month and day order, with the direction parameter indicating which direction the difference is applied from the toDate.

For example, the difference between 2010-06-10 and 2012-09-5 is 2 years, 2 months and 26 days. Note that the difference between two last days of the month is always 1 month, e.g. 2010-01-31 to 2010-02-28 is 1 month not 28 days.

Parameters
fromDateThe date to start from
toDateThe date to end at
yearsDiffReturns number of years difference
monthsDiffReturns number of months difference
daysDiffReturns number of days difference
directionReturns direction of difference, 1 if fromDate <= toDate, -1 otherwise

Definition at line 1123 of file kcalendarsystem.cpp.

◆ dateToJulianDay()

virtual bool KCalendarSystem::dateToJulianDay ( int  year,
int  month,
int  day,
qint64 &  jd 
) const
protectedpure virtual

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
Parameters
yearyear number
monthmonth number
dayday of month
jdJulian day number returned in this variable
Returns
true if the date is valid, false otherwise

◆ day()

int KCalendarSystem::day ( const QDate date) const
virtual

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

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

Definition at line 977 of file kcalendarsystem.cpp.

◆ dayOfWeek()

int KCalendarSystem::dayOfWeek ( const QDate date) const

Returns the weekday number for the given date.

The weekdays are numbered 1..7 for Monday..Sunday.

This value is not affected by the value of weekStartDay()

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

Definition at line 1268 of file kcalendarsystem.cpp.

◆ dayOfWeekString()

QString KCalendarSystem::dayOfWeekString ( const QDate date) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.4

Converts a date into a day of week literal

Parameters
pDateThe date to convert
Returns
The day of week literal of the date, empty string if any error
See also
dayOfWeek()

Definition at line 936 of file kcalendarsystem.h.

◆ dayOfYear()

int KCalendarSystem::dayOfYear ( const QDate date) const
virtual

Returns the day number of year for the given date.

The days are numbered 1..daysInYear()

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

Definition at line 1257 of file kcalendarsystem.cpp.

◆ dayOfYearString()

QString KCalendarSystem::dayOfYearString ( const QDate date,
StringFormat  format = LongFormat 
) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.4

Converts a date into a day of year literal

Parameters
pDateThe date to convert
formatThe format to return, either short or long
Returns
The day of year literal of the date, empty string if any error
See also
dayOfYear()

Definition at line 914 of file kcalendarsystem.h.

◆ daysDifference()

int KCalendarSystem::daysDifference ( const QDate fromDate,
const QDate toDate 
) const
inline

Returns the difference between two dates in days The returned value will be negative if fromDate > toDate.

Parameters
fromDateThe date to start from
toDateThe date to end at
Returns
The number of days difference

Definition at line 485 of file kcalendarsystem.h.

◆ daysInMonth() [1/2]

int KCalendarSystem::daysInMonth ( const QDate date) const

Returns the number of days in the given month.

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

Definition at line 1224 of file kcalendarsystem.cpp.

◆ daysInMonth() [2/2]

int KCalendarSystem::daysInMonth ( int  year,
int  month 
) const
Since
4.5

Returns the number of days in the given month.

Parameters
yearthe year the month is in
monththe month
Returns
number of days in month, -1 if input date invalid

Definition at line 1237 of file kcalendarsystem.cpp.

◆ daysInMonthString()

QString KCalendarSystem::daysInMonthString ( const QDate date,
StringFormat  format = LongFormat 
) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.4

Returns the days in month for a date as a numeric string

Parameters
pDateThe date to convert
formatThe format to return, either short or long
Returns
The days in month literal of the date, empty string if any error
See also
daysInMonth()

Definition at line 1047 of file kcalendarsystem.h.

◆ daysInWeek()

int KCalendarSystem::daysInWeek ( const QDate date) const

Returns the number of days in the given week.

Note
Every calendar systems ever supported by KCalendarSystem returns, and has always returned, 7, but there is no guarantee that all future calendar systems will also do so.
Parameters
datethe date to obtain week from
Returns
number of days in week, -1 if input date invalid

Definition at line 1250 of file kcalendarsystem.cpp.

◆ daysInWeekString()

QString KCalendarSystem::daysInWeekString ( const QDate date) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.4

Returns the days in week for a date as a numeric string

Parameters
dateThe date to convert
Returns
The days in week literal of the date, empty string if any error
See also
daysInWeek()

Definition at line 1069 of file kcalendarsystem.h.

◆ daysInYear() [1/2]

int KCalendarSystem::daysInYear ( const QDate date) const

Returns the number of days in the given year.

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

Definition at line 1202 of file kcalendarsystem.cpp.

◆ daysInYear() [2/2]

int KCalendarSystem::daysInYear ( int  year) const
Since
4.5

Returns the number of days in the given year.

Parameters
yearthe year
Returns
number of days in year, -1 if input date invalid

Definition at line 1213 of file kcalendarsystem.cpp.

◆ daysInYearString()

QString KCalendarSystem::daysInYearString ( const QDate date,
StringFormat  format = LongFormat 
) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.4

Returns the days in year for a date as a numeric string

Parameters
pDateThe date to convert
formatThe format to return, either short or long
Returns
The days in year literal of the date, empty string if any error
See also
daysInYear()

Definition at line 1024 of file kcalendarsystem.h.

◆ dayString()

virtual QString KCalendarSystem::dayString ( const QDate date,
StringFormat  format = LongFormat 
) const
inlinevirtual
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)

Converts a date into a day literal

Parameters
pDateThe date to convert
formatThe format to return, either short or long
Returns
The day literal of the date, empty string if any error
See also
day()

Definition at line 869 of file kcalendarsystem.h.

◆ dayStringToInteger()

int KCalendarSystem::dayStringToInteger ( const QString sNum,
int &  iLength 
) const
virtual
Deprecated:
for internal use only

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

Parameters
sNumThe string to parse
iLengthThe number of QChars used, and 0 if no valid symbols was found in the string
Returns
An integer corresponding to the day

Definition at line 1515 of file kcalendarsystem.cpp.

◆ earliestValidDate()

virtual QDate KCalendarSystem::earliestValidDate ( ) const
pure virtual

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
KCalendarSystem::latestValidDate
Returns
date the earliest valid date

◆ epoch()

virtual QDate KCalendarSystem::epoch ( ) const
pure virtual

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
KCalendarSystem::latestValidDate
KCalendarSystem::isProleptic
KCalendarSystem::isValid
Returns
epoch of calendar system

◆ eraName()

QString KCalendarSystem::eraName ( const QDate date,
StringFormat  format = ShortFormat 
) const
Since
4.5

Returns the Era Name portion of a given date in the current calendar system, for example "AD" or "Anno Domini" for the Gregorian calendar and Christian Era.

Parameters
datedate to return Era Name for
formatformat to return, either short or long
Returns
era name, empty string if input date is invalid

Definition at line 991 of file kcalendarsystem.cpp.

◆ eraYear()

QString KCalendarSystem::eraYear ( const QDate date,
StringFormat  format = ShortFormat 
) const
Since
4.5

Returns the Era Year portion of a given date in the current calendar system, for example "2000 AD" or "Heisei 22".

Parameters
datedate to return Era Year for
formatformat to return, either short or long
Returns
era name, empty string if input date is invalid

Definition at line 1007 of file kcalendarsystem.cpp.

◆ firstDayOfMonth() [1/2]

QDate KCalendarSystem::firstDayOfMonth ( const QDate date = QDate::currentDate()) const
Since
4.6

Returns a QDate containing the first day of the month

Parameters
dateThe month to return the date for, defaults to today
Returns
The first day of the month

Definition at line 1397 of file kcalendarsystem.cpp.

◆ firstDayOfMonth() [2/2]

QDate KCalendarSystem::firstDayOfMonth ( int  year,
int  month 
) const
Since
4.6

Returns a QDate containing the first day of the month

Parameters
yearThe year to return the date for
monthThe month to return the date for
Returns
The first day of the month

Definition at line 1373 of file kcalendarsystem.cpp.

◆ firstDayOfYear() [1/2]

QDate KCalendarSystem::firstDayOfYear ( const QDate date = QDate::currentDate()) const
Since
4.6

Returns a QDate containing the first day of the year

Parameters
dateThe year to return the date for, defaults to today
Returns
The first day of the year

Definition at line 1349 of file kcalendarsystem.cpp.

◆ firstDayOfYear() [2/2]

QDate KCalendarSystem::firstDayOfYear ( int  year) const
Since
4.6

Returns a QDate containing the first day of the year

Parameters
yearThe year to return the date for
Returns
The first day of the year

Definition at line 1325 of file kcalendarsystem.cpp.

◆ formatDate() [1/4]

QString KCalendarSystem::formatDate ( const QDate date,
KLocale::DateTimeComponent  component,
KLocale::DateTimeComponentFormat  format = KLocale::DefaultComponentFormat,
KLocale::WeekNumberSystem  weekNumberSystem = KLocale::DefaultWeekNumber 
) const
Since
4.6

Returns a Date Component as a localized string in the requested format.

For example for 2010-01-01 the KLocale::Month with en_US Locale and Gregorian calendar may return: KLocale::ShortNumber = "1" KLocale::LongNumber = "01" KLocale::NarrowName = "J" KLocale::ShortName = "Jan" KLocale::LongName = "January"

Parameters
dateThe date to format
componentThe date component to return
formatThe format to return the component in
weekNumberSystemTo override the default Week Number System to use
Returns
The localized string form of the date component

Definition at line 1584 of file kcalendarsystem.cpp.

◆ formatDate() [2/4]

QString KCalendarSystem::formatDate ( const QDate fromDate,
const QString toFormat,
KLocale::DateTimeFormatStandard  formatStandard = KLocale::KdeFormat 
) const
Since
4.4

Returns a string formatted to the given format and localised to the correct language and digit set using the requested format standard.

   *** WITH GREAT POWER COMES GREAT RESPONSIBILITY ***

Please use with care and only in situations where the DateFormat enum or locale formats or individual string methods do not provide what you need. You should almost always translate your format string as documented. Using the standard DateFormat options instead would take care of the translation for you.

Warning: The n element differs from the GNU/POSIX standard where it is defined as a newline. KDE currently uses this for short day number. It is recommended for compatibility purposes to use %-m instead.

The toFormat parameter is a good candidate to be made translatable, so that translators can adapt it to their language's convention. There should also be a context using the "kdedt-format" keyword (for automatic validation of translations) and stating the format's purpose:

QDate reportDate;
KLocale::global()->calendar()->setDate(reportDate, reportYear, reportMonth, 1);
dateFormat = i18nc("(kdedt-format) Report month and year in report header", "%B %Y"));
dateString = KLocale::global()->calendar()->formatDate(reportDate, dateFormat);

The date format string can be defined using either the KDE or POSIX standards. The KDE standard closely follows the POSIX standard but with some exceptions. Always use the KDE standard within KDE, but where interaction is required with external POSIX compliant systems (e.g. Gnome, glibc, etc) the POSIX standard should be used.

Date format strings are made up of date componants and string literals. Date componants are prefixed by a % escape character and are made up of optional padding and case modifier flags, an optional width value, and a compulsary code for the actual date componant: %[Flags][Width][Componant] e.g. _^5Y No spaces are allowed.

The Flags can modify the padding character and/or case of the Date Componant. The Flags are optional and may be combined and/or repeated in any order, in which case the last Padding Flag and last Case Flag will be the ones used. The Flags must be immediately after the % and before any Width.

The Width can modify how wide the date Componant is padded to. The Width is an optional interger value and must be after any Flags but before the Componant. If the Width is less than the minimum defined for a Componant then the default minimum will be used instead.

By default most numeric Date Componants are right-aligned with leading 0's.

By default all string name fields are capital case and unpadded.

The following Flags may be specified:

  • - (hyphen) no padding (e.g. 1 Jan and "%-j" = "1")
  • _ (underscore) pad with spaces (e.g. 1 Jan and "%-j" = " 1")
  • 0 (zero) pad with 0's (e.g. 1 Jan and "%0j" = "001")
  • ^ (caret) make uppercase (e.g. 1 Jan and "%^B" = "JANUARY")
  • # (hash) invert case (e.g. 1 Jan and "%#B" = "???")

The following Date Componants can be specified:

  • Y the year to 4 digits (e.g. "1984" for 1984, "0584" for 584, "0084" for 84)
  • C the 'century' portion of the year to 2 digits (e.g. "19" for 1984, "05" for 584, "00" for 84)
  • y the lower 2 digits of the year to 2 digits (e.g. "84" for 1984, "05" for 2005)
  • EY the full local era year (e.g. "2000 AD")
  • EC the era name short form (e.g. "AD")
  • Ey the year in era to 1 digit (e.g. 1 or 2000)
  • m the month number to 2 digits (January="01", December="12")
  • n the month number to 1 digit (January="1", December="12"), see notes!
  • d the day number of the month to 2 digits (e.g. "01" on the first of March)
  • e the day number of the month to 1 digit (e.g. "1" on the first of March)
  • B the month name long form (e.g. "January")
  • b the month name short form (e.g. "Jan" for January)
  • h the month name short form (e.g. "Jan" for January)
  • A the weekday name long form (e.g. "Wednesday" for Wednesday)
  • a the weekday name short form (e.g. "Wed" for Wednesday)
  • j the day of the year number to 3 digits (e.g. "001" for 1 Jan)
  • V the ISO week of the year number to 2 digits (e.g. "01" for ISO Week 1)
  • G the year number in long form of the ISO week of the year to 4 digits (e.g. "2004" for 1 Jan 2005)
  • g the year number in short form of the ISO week of the year to 2 digits (e.g. "04" for 1 Jan 2005)
  • u the day of the week number to 1 digit (e.g. "1" for Monday)
  • D the US short date format (e.g. "%m/%d/%y")
  • F the ISO short date format (e.g. "%Y-%m-%d")
  • x the KDE locale short date format
  • %% the literal "%"
  • t a tab character

Everything else in the format string will be taken as literal text.

Examples: "%Y-%m-%d" = "2009-01-01" "%Y-%-m-%_4d" = "2009-1- 1"

The following format codes behave differently in the KDE and POSIX standards

  • e in GNU/POSIX is space padded to 2 digits, in KDE is not padded
  • n in GNU/POSIX is newline, in KDE is short month number

The following POSIX format codes are currently not supported:

  • U US week number
  • w US day of week
  • W US week number
  • O locale's alternative numeric symbols, in KDE is not supported

%0 is not supported as the returned result is always in the locale's chosen numeric symbol digit set.

See also
KLocale::formatDate
Parameters
fromDatethe date to be formatted
toFormatthe date format to use
formatStandardthe standard the date format uses, defaults to KDE Standard
Returns
The date as a string

Definition at line 1565 of file kcalendarsystem.cpp.

◆ formatDate() [3/4]

QString KCalendarSystem::formatDate ( const QDate fromDate,
const QString toFormat,
KLocale::DigitSet  digitSet,
KLocale::DateTimeFormatStandard  formatStandard = KLocale::KdeFormat 
) const
Since
4.4

Returns a string formatted to the given format string and Digit Set. Only use this version if you need control over the Digit Set and do not want to use the locale Digit Set.

See also
formatDate
Parameters
fromDatethe date to be formatted
toFormatthe date format to use
digitSetthe Digit Set to format the date in
formatStandardthe standard the date format uses, defaults to KDE Standard
Returns
The date as a string

Definition at line 1572 of file kcalendarsystem.cpp.

◆ formatDate() [4/4]

QString KCalendarSystem::formatDate ( const QDate fromDate,
KLocale::DateFormat  toFormat = KLocale::LongDate 
) const
virtual

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
Parameters
fromDatethe date to be formatted
toFormatcategory of date format to use
Returns
The date as a string

Definition at line 1521 of file kcalendarsystem.cpp.

◆ getDate()

void KCalendarSystem::getDate ( const QDate  date,
int *  year,
int *  month,
int *  day 
) const
Since
4.5

Returns the year, month and day portion of a given date in the current calendar system

Parameters
datedate to get year, month and day for
yearyear number returned in this variable
monthmonth number returned in this variable
dayday of month returned in this variable

Definition at line 927 of file kcalendarsystem.cpp.

◆ isLeapYear() [1/2]

bool KCalendarSystem::isLeapYear ( const QDate date) const

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.

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

Definition at line 1313 of file kcalendarsystem.cpp.

◆ isLeapYear() [2/2]

bool KCalendarSystem::isLeapYear ( int  year) const

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.

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

Definition at line 1302 of file kcalendarsystem.cpp.

◆ isLunar()

virtual bool KCalendarSystem::isLunar ( ) const
pure virtual

Returns whether the calendar is lunar based.

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

◆ isLunisolar()

virtual bool KCalendarSystem::isLunisolar ( ) const
pure virtual

Returns whether the calendar is lunisolar based.

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

◆ isProleptic()

virtual bool KCalendarSystem::isProleptic ( ) const
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()

virtual bool KCalendarSystem::isSolar ( ) const
pure virtual

Returns whether the calendar is solar based.

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

◆ isValid() [1/4]

bool KCalendarSystem::isValid ( const QDate date) const
inline

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

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

Definition at line 247 of file kcalendarsystem.h.

◆ isValid() [2/4]

bool KCalendarSystem::isValid ( const QString eraName,
int  yearInEra,
int  month,
int  day 
) const
Since
4.5

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

Parameters
eraNamethe Era Name portion of the date to check
yearInErathe Year In Era portion of the date to check
monththe Month portion of the date to check
daythe Day portion of the date to check
Returns
true if the date is valid, false otherwise

Definition at line 800 of file kcalendarsystem.cpp.

◆ isValid() [3/4]

bool KCalendarSystem::isValid ( int  year,
int  dayOfYear 
) const
Since
4.4

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

Parameters
yearthe year portion of the date to check
dayOfYearthe day of year portion of the date to check
Returns
true if the date is valid, false otherwise

Definition at line 793 of file kcalendarsystem.cpp.

◆ isValid() [4/4]

bool KCalendarSystem::isValid ( int  year,
int  month,
int  day 
) const

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

Parameters
yearthe year portion of the date to check
monththe month portion of the date to check
daythe day portion of the date to check
Returns
true if the date is valid, false otherwise

Definition at line 784 of file kcalendarsystem.cpp.

◆ isValidIsoWeekDate()

bool KCalendarSystem::isValidIsoWeekDate ( int  year,
int  isoWeekNumber,
int  dayOfIsoWeek 
) const
Since
4.4

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

Parameters
yearthe year portion of the date to check
isoWeekNumberthe ISO week portion of the date to check
dayOfIsoWeekthe day of week portion of the date to check
Returns
true if the date is valid, false otherwise

Definition at line 809 of file kcalendarsystem.cpp.

◆ julianDayToDate()

virtual bool KCalendarSystem::julianDayToDate ( qint64  jd,
int &  year,
int &  month,
int &  day 
) const
protectedpure virtual

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
Parameters
jdJulian day number to convert to date
yearyear number returned in this variable
monthmonth number returned in this variable
dayday of month returned in this variable
Returns
true if the date is valid, false otherwise

◆ lastDayOfMonth() [1/2]

QDate KCalendarSystem::lastDayOfMonth ( const QDate date = QDate::currentDate()) const
Since
4.6

Returns a QDate containing the last day of the month

Parameters
dateThe month to return the date for, defaults to today
Returns
The last day of the month

Definition at line 1411 of file kcalendarsystem.cpp.

◆ lastDayOfMonth() [2/2]

QDate KCalendarSystem::lastDayOfMonth ( int  year,
int  month 
) const
Since
4.6

Returns a QDate containing the last day of the month

Parameters
yearThe year to return the date for
monthThe month to return the date for
Returns
The last day of the month

Definition at line 1385 of file kcalendarsystem.cpp.

◆ lastDayOfYear() [1/2]

QDate KCalendarSystem::lastDayOfYear ( const QDate date = QDate::currentDate()) const
Since
4.6

Returns a QDate containing the last day of the year

Parameters
dateThe year to return the date for, defaults to today
Returns
The last day of the year

Definition at line 1361 of file kcalendarsystem.cpp.

◆ lastDayOfYear() [2/2]

QDate KCalendarSystem::lastDayOfYear ( int  year) const
Since
4.6

Returns a QDate containing the last day of the year

Parameters
yearThe year to return the date for
Returns
The last day of the year

Definition at line 1337 of file kcalendarsystem.cpp.

◆ latestValidDate()

virtual QDate KCalendarSystem::latestValidDate ( ) const
pure virtual

Returns the latest date valid in this calendar system implementation.

See also
KCalendarSystem::epoch
KCalendarSystem::earliestValidDate
Returns
date the latest valid date

◆ locale()

const KLocale * KCalendarSystem::locale ( ) const
protected

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
KLocale::formatDate
KCalendarSystem::weekStartDay
KLocale::weekStartDay
KCalendarSystem::readDate
KLocale::readDate
Returns
locale to use

Definition at line 1876 of file kcalendarsystem.cpp.

◆ month()

int KCalendarSystem::month ( const QDate date) const
virtual

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

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

Definition at line 964 of file kcalendarsystem.cpp.

◆ monthName() [1/2]

QString KCalendarSystem::monthName ( const QDate date,
MonthNameFormat  format = LongName 
) const
virtual

Gets specific calendar type month name for a given date.

Parameters
datedate to obtain month from
formatspecifies whether the short month name or long month name should be used
Returns
name of the month, empty string if any error

Definition at line 1452 of file kcalendarsystem.cpp.

◆ monthName() [2/2]

QString KCalendarSystem::monthName ( int  month,
int  year,
KCalendarSystem::MonthNameFormat  format = LongName 
) const
pure virtual

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

Parameters
monththe month number
yearthe year the month belongs to
formatspecifies whether the short month name or long month name should be used
Returns
name of the month, empty string if any error

Definition at line 1424 of file kcalendarsystem.cpp.

◆ monthsDifference()

int KCalendarSystem::monthsDifference ( const QDate fromDate,
const QDate toDate 
) const

Returns the difference between two dates in completed calendar months The returned value will be negative if fromDate > toDate.

For example, the difference between 2010-06-10 and 2012-09-5 is 26 months. Note that the difference between two last days of the month is always 1 month, e.g. 2010-01-31 to 2010-02-28 is 1 month not 28 days.

Parameters
fromDateThe date to start from
toDateThe date to end at
Returns
The number of months difference

Definition at line 1146 of file kcalendarsystem.cpp.

◆ monthsInYear() [1/2]

int KCalendarSystem::monthsInYear ( const QDate date) const

Returns number of months in the given year.

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

Definition at line 1157 of file kcalendarsystem.cpp.

◆ monthsInYear() [2/2]

int KCalendarSystem::monthsInYear ( int  year) const
Since
4.5

Returns number of months in the given year

Parameters
yearthe required year
Returns
number of months in the year, -1 if input date invalid

Definition at line 1168 of file kcalendarsystem.cpp.

◆ monthsInYearString()

QString KCalendarSystem::monthsInYearString ( const QDate date,
StringFormat  format = LongFormat 
) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.4

Returns the months in year for a date as a numeric string

Parameters
pDateThe date to convert
formatThe format to return, either short or long
Returns
The months in year literal of the date, empty string if any error
See also
monthsInYear()

Definition at line 978 of file kcalendarsystem.h.

◆ monthString()

virtual QString KCalendarSystem::monthString ( const QDate date,
StringFormat  format = LongFormat 
) const
inlinevirtual
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)

Converts a date into a month literal

Parameters
pDateThe date to convert
formatThe format to return, either short or long
Returns
The month literal of the date, empty string if any error
See also
month()

Definition at line 848 of file kcalendarsystem.h.

◆ monthStringToInteger()

int KCalendarSystem::monthStringToInteger ( const QString sNum,
int &  iLength 
) const
virtual
Deprecated:
for internal use only

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

Parameters
sNumThe string to parse
iLengthThe number of QChars used, and 0 if no valid symbols was found in the string
Returns
An integer corresponding to the month

Definition at line 1509 of file kcalendarsystem.cpp.

◆ readDate() [1/4]

QDate KCalendarSystem::readDate ( const QString dateString,
const QString dateFormat,
bool *  ok,
KLocale::DateTimeFormatStandard  formatStandard 
) const

Converts a localized date string to a QDate, using the specified format.

You will usually not want to use this method.

You must supply a format and string containing at least one of the following combinations to create a valid date:

  • a month and day of month
  • a day of year
  • a ISO week number and day of week

If a year number is not supplied then the current year will be assumed.

All date componants must be separated by a non-numeric character.

The format is not applied strictly to the input string:

  • extra whitespace is ignored
  • leading 0's on numbers are ignored
  • capitalisation of literals is ignored

The allowed format componants are almost the same as the formatDate() function. The following date componants will be read:

  • Y the whole year (e.g. "1984" for 1984)
  • y the lower 2 digits of the year (e.g. "84" for 1984)
  • EY the full local era year (e.g. "2000 AD")
  • EC the era name short form (e.g. "AD")
  • Ey the year in era to 1 digit (e.g. 1 or 2000)
  • m the month number to two digits (January="01", December="12")
  • n the month number (January="1", December="12")
  • d the day number of the month to two digits (e.g. "01" on the first of March)
  • e the day number of the month (e.g. "1" on the first of March)
  • B the month name long form (e.g. "January")
  • b the month name short form (e.g. "Jan" for January)
  • h the month name short form (e.g. "Jan" for January)
  • A the weekday name long form (e.g. "Wednesday" for Wednesday)
  • a the weekday name short form (e.g. "Wed" for Wednesday)
  • j the day of the year number to three digits (e.g. "001" for 1 Jan)
  • V the ISO week of the year number to two digits (e.g. "01" for ISO Week 1)
  • u the day of the week number (e.g. "1" for Monday)

The following date componants are NOT supported:

  • C the 'century' portion of the year (e.g. "19" for 1984, "5" for 584, "" for 84)
  • G the year number in long form of the ISO week of the year (e.g. "2004" for 1 Jan 2005)
  • g the year number in short form of the ISO week of the year (e.g. "04" for 1 Jan 2005)
  • D the US short date format (e.g. "%m/%d/%y")
  • F the ISO short date format (e.g. "%Y-%m-%d")
  • x the KDE locale short date format
  • %% the literal "%"
  • t a tab character
Parameters
dateStringthe string to convert
dateFormatthe date format to use
okif non-null, will be set to true if the date is valid, false if invalid
formatStandardthe standard the date format uses
Returns
the string converted to a QDate
See also
formatDate
KLocale::readDate

Definition at line 1849 of file kcalendarsystem.cpp.

◆ readDate() [2/4]

QDate KCalendarSystem::readDate ( const QString dateString,
const QString dateFormat,
bool *  ok = nullptr 
) const
virtual

Converts a localized date string to a QDate, using the specified format.

You will usually not want to use this method. Uses teh KDE format standard.

Parameters
dateStringthe string to convert
dateFormatthe date format to use, in KDE format standard
okif non-null, will be set to true if the date is valid, false if invalid
Returns
the string converted to a QDate
See also
formatDate
KLocale::readDate

Definition at line 1843 of file kcalendarsystem.cpp.

◆ readDate() [3/4]

QDate KCalendarSystem::readDate ( const QString str,
bool *  ok = nullptr 
) const
virtual

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
Parameters
strthe string to convert
okif non-null, will be set to true if the date is valid, false if invalid
Returns
the string converted to a QDate

Definition at line 1806 of file kcalendarsystem.cpp.

◆ readDate() [4/4]

QDate KCalendarSystem::readDate ( const QString str,
KLocale::ReadDateFlags  flags,
bool *  ok = nullptr 
) const
virtual

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
Parameters
strthe string to convert
flagswhether the date string is to be in full format or in short format
okif non-null, will be set to true if the date is valid, false if invalid
Returns
the string converted to a QDate

Definition at line 1827 of file kcalendarsystem.cpp.

◆ setDate() [1/3]

bool KCalendarSystem::setDate ( QDate date,
int  year,
int  dayOfYear 
) const
Since
4.4

Set a date using the year number and day of year number only.

Parameters
datedate to change
yearyear
dayOfYearday of year
Returns
true if the date is valid, false otherwise

Definition at line 871 of file kcalendarsystem.cpp.

◆ setDate() [2/3]

bool KCalendarSystem::setDate ( QDate date,
int  year,
int  month,
int  day 
) const
virtual

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.

Parameters
datedate to change
yearyear
monthmonth number
dayday of month
Returns
true if the date is valid, false otherwise

Definition at line 852 of file kcalendarsystem.cpp.

◆ setDate() [3/3]

bool KCalendarSystem::setDate ( QDate date,
QString  eraName,
int  yearInEra,
int  month,
int  day 
) const
Since
4.5

Set a date using the era, year in era number, month and day

Parameters
datedate to change
eraNameEra string
yearInEraYear In Era number
monthMonth number
dayDay Of Month number
Returns
true if the date is valid, false otherwise

Definition at line 889 of file kcalendarsystem.cpp.

◆ setDateIsoWeek()

bool KCalendarSystem::setDateIsoWeek ( QDate date,
int  year,
int  isoWeekNumber,
int  dayOfIsoWeek 
) const
Since
4.4

Set a date using the year number, ISO week number and day of week number.

Parameters
datedate to change
yearyear
isoWeekNumberISO week of year
dayOfIsoWeekday of week Mon..Sun (1..7)
Returns
true if the date is valid, false otherwise

Definition at line 898 of file kcalendarsystem.cpp.

◆ setYMD()

virtual bool KCalendarSystem::setYMD ( QDate date,
int  y,
int  m,
int  d 
) const
inlinevirtual
Deprecated:
Use setDate() instead

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.

Parameters
dateDate to change
yYear
mMonth number
dDay of month
Returns
true if the date is valid; otherwise returns false.

Definition at line 322 of file kcalendarsystem.h.

◆ shortYearWindowStartYear()

int KCalendarSystem::shortYearWindowStartYear ( ) const
Since
4.6

Returns the Short Year Window Start Year for the current Calendar System.

Use this function to get the Start Year for the Short Year Window to be applied when 2 digit years are entered for a Short Year input format, e.g. if the Short Year Window Start Year is 1930, then the input Short Year value of 40 is interpreted as 1940 and the input Short Year value of 10 is interpreted as 2010.

The Short Year Window is only ever applied when reading the Short Year format and not the Long Year format, i.e. KLocale::ShortFormat or 'y' only and not KLocale::LongFormat or 'Y'.

The Start Year 0 effectively means not to use a Short Year Window

Each Calendar System requires a different Short Year Window as they have different epochs. The Gregorian Short Year Window usually pivots around the year 2000, whereas the Hebrew Short Year Window usually pivots around the year 5000.

This value must always be used when evaluating user input Short Year strings.

See also
KLocale::shortYearWindowStartYear
KLocale::applyShortYearWindow
Returns
the short year window start year

Definition at line 1861 of file kcalendarsystem.cpp.

◆ week() [1/2]

int KCalendarSystem::week ( const QDate date,
int *  yearNum 
) const
inline

Returns the localized Week Number for the date.

This may be ISO, US, or any other supported week numbering scheme. If you specifically require the ISO Week or any other scheme, you should use the week(KLocale::WeekNumberSystem) form.

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.

See also
weeksInYear()
formatDate()
Parameters
datethe date to obtain week from
yearNumreturns the year the date belongs to
Returns
localized week number, -1 if input date invalid

Definition at line 646 of file kcalendarsystem.h.

◆ week() [2/2]

int KCalendarSystem::week ( const QDate date,
KLocale::WeekNumberSystem  weekNumberSystem = KLocale::DefaultWeekNumber,
int *  yearNum = nullptr 
) const

Returns the Week Number for the date in the required Week Number System.

Unless you want a specific Week Number System (e.g. ISO Week), you should use the localized Week Number form of week().

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.

Technically, the ISO Week Number only applies to the ISO/Gregorian Calendar System, but the same rules will be applied to the current Calendar System.

See also
weeksInYear()
formatDate()
Parameters
datethe date to obtain week from
weekNumberSystemthe Week Number System to use
yearNumreturns the year the date belongs to
Returns
week number, -1 if input date invalid

Definition at line 1279 of file kcalendarsystem.cpp.

◆ weekDayName() [1/2]

QString KCalendarSystem::weekDayName ( const QDate date,
WeekDayNameFormat  format = LongDayName 
) const
virtual

Gets specific calendar type week day name.

Parameters
datethe date
formatspecifies whether the short month name or long month name should be used
Returns
day name, empty string if any error

Definition at line 1482 of file kcalendarsystem.cpp.

◆ weekDayName() [2/2]

QString KCalendarSystem::weekDayName ( int  weekDay,
KCalendarSystem::WeekDayNameFormat  format = LongDayName 
) const
pure virtual

Gets specific calendar type week day name.

If an invalid week day is specified, QString() is returned.

Parameters
weekDaynumber of day in week (Monday = 1, ..., Sunday = 7)
formatspecifies whether the short month name or long month name should be used
Returns
day name, empty string if any error

Definition at line 1463 of file kcalendarsystem.cpp.

◆ weekDayOfPray()

int KCalendarSystem::weekDayOfPray ( ) const
inline
Deprecated:
use KLocale::weekDayOfPray() instead

Returns the day of the week traditionally associated with religious observance for this calendar system. Note this may not be accurate for the users locale, e.g. Gregorian calendar used in non-Christian countries, in use cases where this could be an issue it is recommended to use KLocale::weekDayOfPray() instead.

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

Definition at line 1478 of file kcalendarsystem.h.

◆ weekNumber()

int KCalendarSystem::weekNumber ( const QDate date,
int *  yearNum = nullptr 
) const
inline
Deprecated:
use week() instead

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.

Parameters
datethe date to obtain week from
yearNumreturns the year the date belongs to
Returns
ISO week number, -1 if input date invalid

Definition at line 623 of file kcalendarsystem.h.

◆ weekNumberString()

QString KCalendarSystem::weekNumberString ( const QDate date,
StringFormat  format = LongFormat 
) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.4

Converts a date into a week number literal

Parameters
pDateThe date to convert
formatThe format to return, either short or long
Returns
The day literal of the date, empty string if any error
See also
weekNumber()

Definition at line 955 of file kcalendarsystem.h.

◆ weeksInYear() [1/2]

int KCalendarSystem::weeksInYear ( const QDate date,
KLocale::WeekNumberSystem  weekNumberSystem = KLocale::DefaultWeekNumber 
) const
inline
Since
4.7

Returns the number of Weeks in a year using the specified Week Number System.

See also
week()
formatDate()
Parameters
datethe date to obtain year from
weekNumberSystemthe week number system to use
Returns
number of weeks in the year, -1 if date invalid

Definition at line 519 of file kcalendarsystem.h.

◆ weeksInYear() [2/2]

int KCalendarSystem::weeksInYear ( int  year,
KLocale::WeekNumberSystem  weekNumberSystem = KLocale::DefaultWeekNumber 
) const
Since
4.7

Returns the number of Weeks in a year using the specified Week Number System.

See also
week()
formatDate()
Parameters
yearthe year
weekNumberSystemthe week number system to use
Returns
number of weeks in the year, -1 if date invalid

Definition at line 1179 of file kcalendarsystem.cpp.

◆ weeksInYearString()

QString KCalendarSystem::weeksInYearString ( const QDate date,
StringFormat  format = LongFormat 
) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.4

Returns the weeks in year for a date as a numeric string

Parameters
pDateThe date to convert
formatThe format to return, either short or long
Returns
The weeks in year literal of the date, empty string if any error
See also
weeksInYear()

Definition at line 1001 of file kcalendarsystem.h.

◆ weekStartDay()

int KCalendarSystem::weekStartDay ( ) const
inline

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 the caller will use the same value as the calendar system, which would not necessisarily happen if KLocale::weekStartDay() was used directly.

See also
KLocale::weekStartDay
Returns
an integer (Monday = 1, ..., Sunday = 7)

Definition at line 1462 of file kcalendarsystem.h.

◆ year()

int KCalendarSystem::year ( const QDate date) const
virtual

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

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

Definition at line 951 of file kcalendarsystem.cpp.

◆ yearInEra()

int KCalendarSystem::yearInEra ( const QDate date) const
Since
4.5

Returns the Year In Era portion of a given date in the current calendar system, for example 1 for "1 BC".

Parameters
datedate to return Year In Era for
Returns
Year In Era, -1 if input date is invalid

Definition at line 1020 of file kcalendarsystem.cpp.

◆ yearInEraString()

QString KCalendarSystem::yearInEraString ( const QDate date,
StringFormat  format = ShortFormat 
) const
inline
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)
Since
4.5

Converts a date into a Year In Era literal

Parameters
datedate to return Year In Era for
formatformat to return, either short or long
Returns
Year In Era literal of the date, empty string if any error

Definition at line 891 of file kcalendarsystem.h.

◆ yearsDifference()

int KCalendarSystem::yearsDifference ( const QDate fromDate,
const QDate toDate 
) const

Returns the difference between two dates in completed calendar years.

The returned value will be negative if fromDate > toDate.

For example, the difference between 2010-06-10 and 2012-09-5 is 2 years.

Parameters
fromDateThe date to start from
toDateThe date to end at
Returns
The number of years difference

Definition at line 1134 of file kcalendarsystem.cpp.

◆ yearString()

virtual QString KCalendarSystem::yearString ( const QDate date,
StringFormat  format = LongFormat 
) const
inlinevirtual
Deprecated:
use formatDate(QDate, KLocale::DateTimeComponent, KLocale::DateTimeComponentFormat)

Converts a date into a year literal

Parameters
datedate to convert
formatformat to return, either short or long
Returns
year literal of the date, empty string if any error
See also
year()

Definition at line 827 of file kcalendarsystem.h.

◆ yearStringToInteger()

int KCalendarSystem::yearStringToInteger ( const QString sNum,
int &  iLength 
) const
virtual
Deprecated:
for internal use only

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

Parameters
sNumThe string to parse
iLengthThe number of QChars used, and 0 if no valid symbols was found in the string
Returns
An integer corresponding to the year

Definition at line 1491 of file kcalendarsystem.cpp.


The documentation for this class was generated from the following files:
virtual QString formatDate(const QDate &fromDate, KLocale::DateFormat toFormat=KLocale::LongDate) const
Returns a string formatted to the current locale's conventions regarding dates.
static KLocale * global()
Return the global KLocale instance.
Definition: klocale.cpp:309
virtual bool setDate(QDate &date, int year, int month, int day) const
Changes the date's year, month and day.
const KCalendarSystem * calendar() const
Returns a pointer to the calendar system object.
Definition: klocale.cpp:626
QString i18nc(const char *context, const char *text, const TYPE &arg...)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 03:56:00 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.