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 の値は不変です。
メンバ型のドキュメント
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()も参照してください 。
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 を返します。
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
与えられたyear のmonth に含まれる日数を返す。
月は、各年の最初の月を 1 として、連続した番号が付けられます。year がUnspecified
(渡されなかった場合のデフォルト) の場合、通常の年における月の長さが返される。
maximumDaysInMonth() およびminimumDaysInMonth()も参照のこと 。
int QCalendar::daysInYear(int year) const
与えられたyear の日数を返す。
Unspecified
をyear として扱うことは未定義である。
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
日付の世紀を、指定された曜日と一致するように調整する。
日付の曜日、月、月、年の下二桁が指定された場合に使用します。指定されたdow をdayOfWeek() とし、指定された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 の月数を返す。
year がUnspecified
の場合、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.