QCalendar Class

QCalendar クラスは、カレンダーシステムを記述します。詳細...

ヘッダ #include <QCalendar>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注意:このクラスの関数はすべてリエントラントです。

パブリック型

(since 6.2) class SystemId
enum class System { Gregorian, Julian, Milankovic, Jalali, IslamicCivil }

パブリック関数

QCalendar()
QCalendar(QAnyStringView name)
QCalendar(QCalendar::System system)
(since 6.2) QCalendar(QCalendar::SystemId id)
QDate dateFromParts(const QCalendar::YearMonthDay &parts) const
QDate dateFromParts(int year, int month, int day) const
QString dateTimeToString(QStringView format, const QDateTime &datetime, QDate dateOnly, QTime timeOnly, const QLocale &locale) const
int dayOfWeek(QDate date) const
int daysInMonth(int month, int year = Unspecified) const
int daysInYear(int year) const
bool hasYearZero() const
bool isDateValid(int year, int month, int day) const
bool isGregorian() const
bool isLeapYear(int year) const
bool isLunar() const
bool isLuniSolar() const
bool isProleptic() const
bool isSolar() const
bool isValid() const
(since 6.7) QDate matchCenturyToWeekday(const QCalendar::YearMonthDay &parts, int dow) const
int maximumDaysInMonth() const
int maximumMonthsInYear() const
int minimumDaysInMonth() const
QString monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
int monthsInYear(int year) const
QString name() const
QCalendar::YearMonthDay partsFromDate(QDate date) const
QString standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
QString standaloneWeekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const
QString weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const

静的パブリックメンバ

QStringList availableCalendars()

詳しい説明

QCalendar オブジェクトは、年、月、日数を、特定のシステムの規則に従って特定の日 (最終的にはユリウス日数で識別されます) にマップします。

デフォルトの QCalendar() はグレゴリオ暦で、ゼロ年はありません。その他の暦は、適切な機能を有効にしたりプラグインを読み込んだりすることでサポートできます。機能としてサポートされている暦は、QCalendar::System 列挙形式をコンストラクタに渡すことで作成できます。サポートされるすべての暦は、一旦構築されると、 名前を指定して構築することができます。(そのため、プラグインはカレンダーバックエンドをインスタンス化して登録します。)QCalendar::System からアクセスできる組み込みのバックエンドも、常に名前で利用可能です。カスタムバックエンドを使用するカレンダーも、構築時にバックエンドに割り当てられた一意の ID を使用して構築することができます。

QCalendar の値は不変です。

QDate およびQDateTimeも参照してください

メンバ型のドキュメント

enum class QCalendar::System

この列挙型は、カレンダーシステムの選択肢を指定するために使われます。

定数説明
QCalendar::System::Gregorian0国際的に使われるデフォルトの暦。
QCalendar::System::Julian8古代ローマ暦。
QCalendar::System::Milankovic9一部の正教会で使用されているユリウス修正暦。
QCalendar::System::Jalali10太陽ヒジュリ暦(ペルシア暦とも呼ばれる)。
QCalendar::System::IslamicCivil11イスラム市民暦(表形式)。

QCalendar およびQCalendar::SystemIdも参照のこと

メンバー関数ドキュメント

[explicit] QCalendar::QCalendar()

[explicit] QCalendar::QCalendar(QAnyStringView name)

[explicit] QCalendar::QCalendar(QCalendar::System system)

カレンダーオブジェクトを構築する。

使用する暦の選択は、system で列挙型QCalendar::System を使用するか、name で文字列(Unicode または Latin 1)を使用します。名前による構築は、指定した暦のインスタンスが他の方法で先に構築されているかどうかに依存する場合があります。引数を指定しない場合、デフォルトのコンストラクタはグレゴリオ暦を返します。

注意: Qt 6.4 より前のバージョンでは、name によるコンストラクタは、QStringViewQLatin1String だけを受け付け、QAnyStringView は受け付けませんでした。

QCalendar,System,isValid()も参照してください

QDate QCalendar::dateFromParts(const QCalendar::YearMonthDay &parts) const

QDate QCalendar::dateFromParts(int year, int month, int day) const

年、月、日をQDate に変換する。

yearmonthday は、別々の数値として渡すことも、parts のメンバとしてまとめて渡すこともできます。このカレンダーに指定された年、月、日がある場合は、それを含むQDate を返します。そうでない場合は、値のいずれかが QCalendar::Unspecified である場合も含めて、isNull() が true であるQDate を返します。

isDateValid() およびpartsFromDate()も参照ください

[explicit, since 6.2] QCalendar::QCalendar(QCalendar::SystemId id)

これはオーバーロードされた関数です。

カレンダーオブジェクトを構築します。

カスタムカレンダーの実装を使用している場合は、 作成時にそのバックエンドに一意な ID が割り当てられます。 このコンストラクタにid を渡すと、そのバックエンドを使用した QCalendar を取得します。これは、バックエンドが名前で登録されていない場合に便利です。

この関数は Qt 6.2 で導入されました。

[static] QStringList QCalendar::availableCalendars()

利用可能なカレンダーシステムの名前のリストを返します。

これらは、Qt が提供するものの他に、アプリケーションにリンクされているプラグインや他のコードから提供されることがあります。

QString QCalendar::dateTimeToString(QStringView format, const QDateTime &datetime, QDate dateOnly, QTime timeOnly, const QLocale &locale) const

指定された日付、時刻、または日時を表す文字列を返す。

datetime が有効な場合は、それを表し、日付フィールドと時刻フィールドの両方の書式指定子を認識します。そうでない場合は、dateOnly が有効な場合は、それを表し、日付フィールドの書式指定子のみを認識します。最後に、timeOnly が有効な場合は、それを表し、時刻フィールドの書式指定子のみを認識します。いずれも有効でない場合は、空文字列が返される。

サポートされるフィールド指定子については、QDate::toString およびQTime::toString()を参照のこと。フィールド指定子として認識されるformat の文字は、表現される日付や時刻の適切なデータを表すテキストに置き換えられる。それらを表すテキストは、指定されたlocale に依存する。format のその他の文字は、そのまま返される文字列にコピーされる。

monthName()、weekDayName()、QDate::toString()、QTime::toString()も参照のこと

int QCalendar::dayOfWeek(QDate date) const

与えられたdate の曜日番号を返す。

カレンダーが指定された日付を表すことができない場合はゼロを返します。月曜日を表す1から日曜日を表す7を返します。カレンダー間に曜日がある場合は、他の数値で表すことができます。

partsFromDate() およびQt::DayOfWeekも参照

int QCalendar::daysInMonth(int month, int year = Unspecified) const

与えられたyearmonth に含まれる日数を返す。

月は、各年の最初の月を 1 として、連続した番号が付けられます。yearUnspecified (渡されなかった場合のデフォルト) の場合、通常の年における月の長さが返される。

maximumDaysInMonth() およびminimumDaysInMonth()も参照のこと

int QCalendar::daysInYear(int year) const

与えられたyear の日数を返す。

Unspecifiedyear として扱うことは未定義である。

bool QCalendar::hasYearZero() const

この暦がゼロ年を持つ場合にtrue を返す。

そのような暦はゼロ年を持たず、プロレプティックでもありません。

元年より前の年を表す暦は、通常の整数の数え方に従って、元年より前の年をゼロ年とし、その前に負の数の年を置くだけでよい。このような暦はプロレプティック暦であり、ゼロ年を持つ。また、ゼロ年より前の年を記述せずに、ゼロ年(たとえば、何か大きな出来事のあった年をゼロ年とし、それ以降の年をその出来事の翌年、翌々年......とする)を持つ暦もある。そのような暦は、プロレプティックでなくてもゼロ年を持つことになる。

たとえば、プロレプティック・グレゴリオ暦の元年は紀元1年で、その前の年は紀元前1年、その前は紀元前2年といった具合である。例えば、グレゴリオ暦の元年は西暦1年で、その前の年は紀元前1年、その前の年は紀元前2年といった具合である。この場合、1年前の年を-1年、-1年前の年を-2年といった具合に、負の年号をこの代替ナンバリングに使用する。このような暦はプロレプティックだが、ゼロ年はない。

isProleptic()も参照のこと

bool QCalendar::isDateValid(int year, int month, int day) const

与えられたyear,month,day がこのカレンダーの有効な日付を指定している場合、true を正確に返す。

通常これは、1 <= 月 <=monthsInYear(年) かつ 1 <= 日 <=daysInMonth(月、年) を意味する。しかし、日や月をまたぐ暦は、これを複雑にするかもしれない。

bool QCalendar::isGregorian() const

このカレンダーオブジェクトが、他の Qt API、例えばQDate でデフォルトカレンダーとして使用されているグレゴリオ暦オブジェクトである場合、true を返します。

bool QCalendar::isLeapYear(int year) const

与えられたyear がうるう年の場合、true を返す。

年の長さは整数ではないので、ある年は他の年よりも長くなります。その差は、丸一ヶ月であったり一日であったりと、暦によって異なります。

詳しくは isDateValid() も参照のこと。

bool QCalendar::isLunar() const

このカレンダーが太陰暦の場合はtrue を返す。

太陰暦とは、主に月の満ち欠けに基づく暦のことです。

bool QCalendar::isLuniSolar() const

このカレンダーが太陰太陽暦の場合はtrue を返す。

太陰太陽暦は、月の満ち欠けを表しますが、恒星に対して変化する太陽の位置も記録するように適応します。

bool QCalendar::isProleptic() const

この暦がプロレプティックである場合にtrue を返す。

プロレプティックカレンダーは、その最初の年よりも任意に前の年を記述することができます。これらの年は負の数で表され、場合によっては 0 で表されることもあります。

hasYearZero()も参照

bool QCalendar::isSolar() const

この暦が太陽暦の場合はtrue を返す。

太陽暦は、主に恒星に対する太陽の位置の変化に基づいています。

bool QCalendar::isValid() const

有効なカレンダーオブジェクトである場合に true を返します。

認識できないカレンダー名でカレンダーを作成すると、無効なオブジェクトになる可能性があります。このメソッドを使用して、名前でカレンダーを作成した後でチェックします。

[since 6.7] QDate QCalendar::matchCenturyToWeekday(const QCalendar::YearMonthDay &parts, int dow) const

日付の世紀を、指定された曜日と一致するように調整する。

日付の曜日、月、月、年の下二桁が指定された場合に使用します。指定されたdowdayOfWeek() とし、指定されたparts の月と日にマッチするQDate インスタンスを返します。返されるQDate'のyear()は、parts.year と100の倍数だけ異なるものとし、大きい倍数より小さい倍数、負数より正の倍数を優先する。

これらの条件に一致する日付がない場合、無効なQDate が返される。例えば、グレゴリオ暦の場合、400年周期が整数週であるため、任意の月とその月の任意の日が、指定された下2桁の年において、4つの曜日に該当することがあるだけである。(世紀の変わり目の2月29日がうるう年という特殊なケースでは、1曜日しかありえない:火曜日)。

この関数は Qt 6.7 で導入されました。

int QCalendar::maximumDaysInMonth() const

任意の年の、暦の中で最も長い月の日数を返します。

daysInMonth() およびminimumDaysInMonth()も参照

int QCalendar::maximumMonthsInYear() const

任意の年に含まれる最大の月数を返します。

monthName()、standaloneMonthName() およびmonthsInYear()も参照

int QCalendar::minimumDaysInMonth() const

任意の年の、暦の中で最も短い月の日数を返します。

daysInMonth() およびmaximumDaysInMonth()も参照

QString QCalendar::monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const

適切に地域化された月の名前を返す。

月は数字で示され、month = 1 はその年の最初の月を意味し、それ以降の月はそれに応じて番号が振られる。month の番号が認識できない場合は、空の文字列を返す。

year は Unspecified かもしれない。その場合は、一般的な年の月の数字から名前へのマッピングを使用する。カレンダーによっては、閏月が常に年の終わりにあるとは限らない。その場合、月番号と名前の対応付けは、閏月の位置に依存することになる。したがって、年がわかっている場合は、通常は年を指定すべきである。

名前は、通常完全な日付で使用される形式で、指定されたlocale で返される。format は、どの程度完全に表現するか(つまり、どの程度省略するか)を決定する。

standaloneMonthName()、maximumMonthsInYear()、dateTimeToString()も参照のこと

int QCalendar::monthsInYear(int year) const

与えられたyear の月数を返す。

yearUnspecified の場合、1 年間の最大月数を返す。

maximumMonthsInYear()も参照

QString QCalendar::name() const

このカレンダーの主な名前。

カレンダーは、いくつかの別名で知られていることもあります。name によってインスタンス化されたカレンダーは、そのようなエイリアスを使用することができます。

QCalendar::YearMonthDay QCalendar::partsFromDate(QDate date) const

QDate を年、月、日に変換する。

カレンダーが与えられたdate を表現できない場合、返される構造体のisValid() は偽となる。そうでない場合は、その年、月、日のメンバに、その名前で表される部分が記録される。

dateFromParts()、isProleptic()、hasYearZero()も参照のこと

QString QCalendar::standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const

適切なローカライズされた単独の月名を返す。

月は数字で示され、month = 1 はその年の最初の月を意味し、それ以降の月はそれに従って番号が振られる。month の番号が認識できない場合は空文字列を返す。

year は Unspecified かもしれない。その場合は、一般的な年の月の数字から名前へのマッピングを使用する。カレンダーによっては、閏月が常に年の終わりにあるとは限らない。その場合、月番号と名前の対応付けは、閏月の位置に依存することになる。したがって、年がわかっている場合は、通常は年を指定すべきである。

名前は、指定されたlocale で単独で使用される形式で返される。format は、どの程度完全に表現するか(つまり、どの程度省略するか)を決定する。

monthName()、maximumMonthsInYear()、dateTimeToString()も参照のこと

QString QCalendar::standaloneWeekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const

適切に地域化された曜日単独の名前を返します。

曜日は、月曜日を表す 1 から日曜日を表す 7 までの番号で表されます。カレンダーによっては、それ以外の日 (たとえば、どの週にも属さない連休など) にもっと大きな番号を振っているものもあります。day の番号が認識できない場合は、空の文字列を返す。

この名前は、指定されたlocale で単独で(たとえば、連続する週を行とする月のカレンダーの表形式表示の列見出しとして)使用される形式で返される。format は、それをどの程度完全に表現するか(つまり、どの程度省略するか)を決定する。

weekDayName() およびdayOfWeek()も参照の こと。

QString QCalendar::weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const

適切に地域化された曜日名を返します。

曜日は、月曜日を表す 1 から日曜日を表す 7 までの番号で表されます。カレンダーによっては、それ以外の日 (たとえば、どの週にも属さない連休など) にもっと大きな番号を振っているものもあります。day の番号が認識できない場合は、空の文字列を返す。

名前は、通常完全な日付で使用される形式で、指定されたlocale で返される。format は、どの程度完全に表現するか(つまり、どの程度省略するか)を決定する。

standaloneWeekDayName() およびdayOfWeek()も参照の こと。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.