_time1
_が_time2
_より小さい場合にTrue
を返す関数comp(time1, time2)
を作成しました。 _time1
_を常に_time2
_よりも小さくする必要があるシナリオがあります。最小の値(つまり、可能な限り早い瞬間を表す)を得るには、_time1
_が必要です。どうすればこの時間を取得できますか?
標準の問題のUNIXタイムスタンプ値を使用している場合、表現可能な最も早い時点は1970年に戻ります。
>>> import time
>>> time.gmtime(0)
(1970, 1, 1, 0, 0, 0, 3, 1, 0)
datetime モジュール、 date 、 time 、および datetime オブジェクトを使用する場合、すべてのオブジェクトにmin
およびmax
属性。
>>> from datetime import date, time, datetime
>>> date.min
datetime.date(1, 1, 1)
>>> date.max
datetime.date(9999, 12, 31)
>>> time.min
datetime.time(0, 0)
>>> time.max
datetime.time(23, 59, 59, 999999)
>>> datetime.min
datetime.datetime(1, 1, 1, 0, 0)
>>> datetime.max
datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)
Pythonでは、datetimeオブジェクトは次の定数をエクスポートします
datetime.MINYEAR
The smallest year number allowed in a date or datetime object. MINYEAR is 1.
datetime.MAXYEAR
The largest year number allowed in a date or datetime object. MAXYEAR is 9999.
datetime
モジュールの特定の関数は、datetime.MINYEAR
およびdatetime.MAXYEAR
に従い、その範囲外の日付に対してValueException
を発生させます。これらはそれぞれ1と9999に割り当てられます。
calender
モジュールはdatetime
モジュールに大きく依存していますが、一般に、両方向に無限に広がる “ proleptic Gregorian” を監視します。
time
モジュールも同様に、時間タプル値の年の要素に特定の制限を配置せず、エポック以降の秒のみを使用して時間と日付を計算します。
とはいえ、グレゴリオ暦が採用された1582年2月12日頃の日付を確実に処理することはできません。その前日まで、日付はさまざまな場所に依存するカレンダーを使用して計算されていましたが、標準のPythonではサポートされていません。
time
モジュールを使用している場合、実装で定義された最小時間と最大時間を処理できるプラットフォーム上のCライブラリ関数に委ねられるため、保証はありません。 https://docs.python.org/3/library/time.html 状態:
このモジュールで定義されている関数のほとんどは、同じ名前のプラットフォームCライブラリ関数を呼び出します。これらの関数のセマンティクスはプラットフォームによって異なるため、プラットフォームのドキュメントを参照すると役立つ場合があります。
および https://docs.python.org/3/library/time.html#time.mktime の状態:
時間を生成できる最も早い日付は、プラットフォームによって異なります。
これは、これらの関数がtime_t
値を取得または返すためであり、C11標準に従っています。
clock_t
およびtime_t
で表現できる時間の範囲と精度は、実装によって定義されます。
datetime
モジュールとは異なり、time
モジュールは、サポートする最小値と最大値を示す定数を公開しないため、プラットフォームの最小値と最大値を本当に見つける必要がある場合は、実行時に実験的にそれらを見つけるためにいくつかのコードを書く必要があります。 指数検索 を使用します。