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() は、西暦0年を持たない遡及的グレゴリオ暦です。適切な機能を有効にしたり、プラグインをロードしたりすることで、他の暦もサポートされる場合があります。機能としてサポートされている暦は、QCalendar::System 列挙型をコンストラクタに渡すことで構築できます。 一度構築されれば、サポートされているすべてのカレンダーは名前で生成できます(したがって、プラグインはカレンダーバックエンドをインスタンス化して登録します)。QCalendar::System を介してアクセス可能な組み込みバックエンドも、常に名前で利用可能です。カスタムバックエンドを使用するカレンダーも、構築時にバックエンドに割り当てられた一意のIDを使用して生成できます。
QCalendar 値は不変です。
メンバ型のドキュメント
enum class QCalendar::System
この列挙型は、暦システムの選択肢を指定するために使用されます。
| 定数 | 値 | 説明 |
|---|---|---|
QCalendar::System::Gregorian | 0 | 国際的に使用されているデフォルトのカレンダー。 |
QCalendar::System::Julian | 8 | 古代ローマの暦。 |
QCalendar::System::Milankovic | 9 | 一部の正教会で使用されている、改訂されたユリウス暦。 |
QCalendar::System::Jalali | 10 | 太陽暦に基づくヒジュラ暦(ペルシャ暦とも呼ばれる)。 |
QCalendar::System::IslamicCivil | 11 | (表形式の)イスラム暦。 |
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 によるコンストラクタは、QStringView およびQLatin1String のみを受け付け、QAnyStringView は受け付けませんでした。
QCalendar 、System 、およびisValid()も参照してください 。
[explicit, since 6.2] QCalendar::QCalendar(QCalendar::SystemId id)
カレンダーオブジェクトを生成します。
カスタムカレンダー実装を使用する場合、そのバックエンドは作成時に一意のIDが割り当てられます。そのIDをid としてこのコンストラクタに渡すと、そのバックエンドを使用したQCalendarを取得できます。これは、バックエンドが名前で登録されていない場合に役立ちます。
これはオーバーロードされた関数です。
この関数は Qt 6.2 で導入されました。
[static] QStringList QCalendar::availableCalendars()
利用可能なカレンダーシステムの名前の一覧を返します。
これらは、Qtによって提供されるものに加え、プラグインやアプリケーションにリンクされたその他のコードによって提供される場合があり、その一部は機能によって制御されます。
QDate QCalendar::dateFromParts(const QCalendar::YearMonthDay &parts) const
QDate QCalendar::dateFromParts(int year, int month, int day) const
年、月、日をQDate に変換します。
year 、month 、およびday は、個別の数値として渡すことも、parts のメンバとしてまとめて渡すこともできます。このカレンダーに該当する年、月、および日がある場合、それらを含むQDate を返します。 それ以外の場合(いずれかの値が QCalendar::Unspecified である場合を含む)は、isNull() が true となるQDate を返します。表される日付がQDate でサポートされている範囲外である場合、返されるQDate のisValid() は false となります。
isDateValid() およびpartsFromDate()も参照してください 。
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 の曜日番号を返します。
指定された日付をカレンダーで表現できない場合は 0 を返します。月曜日には 1、日曜日には 7 を返します。閏日を含むカレンダーでは、これらを表すために別の数値が使用される場合があります。
partsFromDate() およびQt::DayOfWeekも参照してください 。
int QCalendar::daysInMonth(int month, int year = Unspecified) const
指定されたyear の指定されたmonth の日数を返します。
月は、各年の最初の月を1として、連続した番号が付けられます。year がUnspecified (引数が指定されていない場合のデフォルト値)の場合、どの年においてもその月の最大日数が返されます。
maximumDaysInMonth() およびminimumDaysInMonth()も参照してください 。
int QCalendar::daysInYear(int year) const
指定されたyear の日数を返します。
Unspecified をyear として扱う場合、その動作は未定義です。
bool QCalendar::hasYearZero() const
このカレンダーに「年ゼロ」が存在する場合、true を返します。
ある暦は、その最初の年から始まる年を表すことはできるが、最初の年以前の年を表す方法を提供しない場合がある。そのような暦には年ゼロが存在せず、プロレプティックではない。
最初の年より前の年を表す暦は、通常の整数による数え方に従ってこれらの年に番号を付けることができる。つまり、最初の年の前の年を「0年」とし、その前に負の番号の年を置く。このような暦は遡及的であり、0年を持つ。 また、暦には「年ゼロ」が存在する場合もある(例えば、ある重大な出来事が起きた年を「年ゼロ」とし、その後の年をその出来事後の「1年目」、「2年目」……と数える場合など)。このような暦は、「年ゼロ」を持つが、プロレプティックではない。
しかし、一部の暦では、最初の年の前の年を別の番号付けで表す。例えば、プロレプティックなグレゴリオ暦では、元年を西暦1年(1 CE)とし、その前の年を西暦前1年(1 BCE)とし、さらにその前の年は西暦前2年(2 BCE)となる。 この場合、この代替的な番号付けには負の年号が用いられ、1年の前を-1年、-1年の前を-2年……とする。このような暦はプロレプティックであるが、西暦0年を持たない。
「isProleptic()」も参照のこと 。
bool QCalendar::isDateValid(int year, int month, int day) const
指定された `year`、`month`、および `day ` が、このカレンダーにおける有効な日付を表す場合に限り、true を正確に返します。
通常、これは 1 <= month <=monthsInYear(年) および 1 <= day <=daysInMonth(月, 年) を意味します。ただし、閏日や閏月を含むカレンダーでは、この条件が複雑になる場合があります。
bool QCalendar::isGregorian() const
このカレンダーオブジェクトが、QDate などで他の Qt API によってデフォルトのカレンダーとして使用されるグレゴリオ暦のオブジェクトである場合、true を返します。
bool QCalendar::isLeapYear(int year) const
指定されたyear が閏年である場合、true を返します。
1年は日数で言えば整数ではないため、年によって日数が異なる場合があります。その差は1ヶ月分になることもあれば、たった1日だけの場合もあり、詳細は暦によって異なります。
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
指定された曜日に合わせて、日付の世紀を調整します。
日付の曜日、月内日、月、および年の下2桁が指定された場合に使用します。 指定されたdow をdayOfWeek()として持ち、月と日付が指定されたparts と一致するQDate インスタンスを返します。返されるQDate のyear()は、parts.year とは100の倍数だけ異なるものとなります。この際、大きな倍数よりも小さな倍数が優先され、負の倍数よりも正の倍数が優先されます。
これらの条件に一致する日付がない場合、無効なQDate が返されます。これは、曜日が指定された他のデータと整合しないためです。 これは、例えばグレゴリオ暦で発生します。グレゴリオ暦の400年周期は整数の週数に相当するため、特定の月の特定の日は、末尾2桁が特定の年において、4つの曜日にしか該当しません。 (世紀の変わり目の2月29日が閏年であるという特殊なケースでは、曜日が火曜日になる場合のみが考えられます。)
この関数は 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 は「未指定」とすることも可能です。その場合は、一般的な年の月における番号から名称への対応関係を使用する必要があります。一部の暦には、必ずしも年の終わりにあるとは限らない閏月があり、その場合、月番号から名称への対応関係は閏月の位置によって異なる可能性があります。したがって、年が判明している場合は、通常、年を指定する必要があります。
名称は、指定されたlocale において、通常、完全な日付で使用される形式で返されます。format によって、その表現の詳しさ(すなわち、どの程度省略されるか)が決まります。
standaloneMonthName()、maximumMonthsInYear()、およびdateTimeToString()も参照してください 。
int QCalendar::monthsInYear(int year) const
指定されたyear に含まれる月数を返します。
year がUnspecified の場合、1年における最大月数を返します。
maximumMonthsInYear()も参照してください 。
QString QCalendar::name() const
このカレンダーのメイン名。
このカレンダーには、いくつかの別名がある場合もあります。名前によってインスタンス化されたカレンダーは、そのような別名を使用する場合があり、その場合は、そのname()がインスタンス化に使用された別名と一致する必要はありません。
QCalendar::YearMonthDay QCalendar::partsFromDate(QDate date) const
QDate を年、月、および日の形式に変換します。
指定されたdate をカレンダーで表現できない場合(またはその年がint で表現可能な範囲外となる場合)、返される構造体のisValid()はfalseとなります。それ以外の場合は、そのyear、month、dayメンバーに、表現の各部分が記録されます。
dateFromParts()、isProleptic()、およびhasYearZero()も参照してください 。
QString QCalendar::standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
月の名前を、適切にローカライズされた単独の名称として返します。
月は数値で指定され、month = 1 はその年の最初の月を意味し、それ以降の月はそれに応じて番号が付けられます。month の数値が認識されない場合は、空の文字列を返します。
year が指定されていない場合、通常の年の月については、番号から名称へのマッピングを使用する必要があります。一部の暦では、閏月が必ずしも年の終わりにあるとは限らず、その場合、月番号から名称へのマッピングは閏月の位置に依存することがあります。したがって、年が判明している場合は、通常、年を指定する必要があります。
名称は、指定された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()も参照してください 。
© 2026 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.