Qtの基礎 - 日時

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
2021年2月20日 (土) 00:56時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == Qtにおいて、<code>QDate</code>クラスまたは<code>QTime</code>クラスを使用して、日付および時刻の有効性を確認する。<br> <br…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

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を返す)
時刻の有効性が確認できない。