「Qtの基礎 - 日時」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == Qtにおいて、<code>QDate</code>クラスまたは<code>QTime</code>クラスを使用して、日付および時刻の有効性を確認する。<br> <br…」) |
(相違点なし)
|
2021年2月20日 (土) 00:56時点における版
概要
Qtにおいて、QDateクラスまたはQTimeクラスを使用して、日付および時刻の有効性を確認する。
日付および時刻の有効性の確認
以下の例では、閏年の判定等も含めて、入力された日付および時刻の有効性を確認している。
- 日付
QDateクラスのコンストラクタに年月日を代入して、isValidメソッドで判定する。
- 時刻
QTimeクラスのコンストラクタに時分秒を代入して、isValidメソッドで判定する。
// 日付
#include <QDate>
qDebug() << QDate(2019, 2, 28).isValid(); // true
qDebug() << QDate(2019, 2, 29).isValid(); // false(閏年ではないため)
qDebug() << QDate(2020, 2, 28).isValid(); // true
qDebug() << QDate(2020, 2, 29).isValid(); // true(閏年のため)
// 時刻
#include <QTime>
qDebug() << QTime(23, 59, 59).isValid(); // true
qDebug() << QTime(0, 0, 0).isValid(); // true
qDebug() << QTime(25, 0, 0).isValid(); // false
qDebug() << QTime(0, 60, 0).isValid(); // false
qDebug() << QTime(0, 0, 60).isValid(); // false
また、QDateTimeクラスというQDateクラスとQTimeクラスの両方を取得するクラスもあるが、
"日付が正常かつ時刻が異常の場合、時刻を00:00:00にする仕様"のため、(その結果、QDateTime::isValidメソッドはtrueを返す)
時刻の有効性が確認できない。