QCalendar Class

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

Header: #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)を使って指定します。名前による構築は、指定した暦のインスタンスが他の方法で先に構築されているかどうかに依存する場合があります。引数を指定しない場合、デフォルトのコンストラクタはグレゴリオ暦を返します。

注意: 6.4 より前の Qt バージョンでは、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 の曜日番号を返す。

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

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

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

指定されたyear の指定されたmonth に含まれる日数を返す。

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

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

int QCalendar::daysInYear(int year) const

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

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

bool QCalendar::hasYearZero() const

このカレンダーの年がゼロの場合はtrue を返します。

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

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

たとえば、プロレプティック・グレゴリオ暦の元年は紀元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 でデフォルトカレンダーとして使用されているグレゴリオ暦オブジェクトである場合、true を返します (QDate など)。

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 によってインスタンス化された暦は、そのような別名を使用することができます。 その場合、その 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()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。