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 の値は不変です。
メンバ型のドキュメント
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)を使って指定します。名前による構築は、指定した暦のインスタンスが他の方法で先に構築されているかどうかに依存する場合があります。引数を指定しない場合、デフォルトのコンストラクタはグレゴリオ暦を返します。
注意: 6.4 より前の Qt バージョンでは、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 の曜日番号を返す。
カレンダーが指定された日付を表すことができない場合は 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
を返します。
そのような暦はゼロ年を持たず、プロレプティックでもありません。
元年より前の年を表す暦は、通常の整数の数え方に従って、元年より前の年をゼロ年とし、その前に負の数の年を置くだけでよい。このような暦はプロレプティック暦であり、ゼロ年を持つ。また、ゼロ年より前の年を記述せずに、ゼロ年(たとえば、何か大きな出来事があった年をゼロ年とし、その後の年はその出来事の翌年、翌々年......と続く)を持つ暦もある。そのような暦は、プロレプティックでなくてもゼロ年を持つことになる。
たとえば、プロレプティック・グレゴリオ暦の元年は紀元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
指定した曜日に一致するように、日付の世紀を調整します。
日付の曜日、月、月、年の下二桁が指定された場合に使用します。指定された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 によってインスタンス化された暦は、そのような別名を使用することができます。 その場合、その 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。