4

時間タプルの部分的な情報を取り、完全な情報を含む時間タプルを返すことができる関数が Python にあるかどうかを知りたいです。たとえば、私が入力しているとき、日付は 2012 年 10 月 18 日木曜日です。これは、年間通算日が 292 で、曜日番号が 3 であることを意味します。次のようなことができるようにしたいと考えています。

>>> part_tuple=2012,10,18,0,0,0,0,0,0   
>>> complete_time_tuple=unknown_mod.unknown_func(part_tuple)
>>> complete_time_tuple
>>> (2012, 10, 18, 0, 0, 0, 292, 3, 0)

あるいは、私はやりたい:

>>> part_tuple=2012,0,0,0,0,0,292,0,0
>>> complete_time_tuple=unknown_mod.unknown_func(part_tuple)

そして、complete_tuple を再び取得します。コードは確かにこれを行うために書くことができますが、それはすでに Python モジュール (時刻、日時、カレンダーなど) のどこかに埋め込まれていると推測しています。ありがとう。

4

2 に答える 2

1

最初の質問では、次を使用できますdatetime(少なくとも Y、M、D が必要です)。

from datetime import datetime

dt = datetime(2012, 10, 18)
print dt.timetuple()
# time.struct_time(tm_year=2012, tm_mon=10, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=292, tm_isdst=-1)

そして、2番目は次のように簡単に実行できます。

from datetime import timedelta
print datetime(2012, 1, 1) + timedelta(days=291)
# datetime.datetime(2012, 10, 18, 0, 0)
于 2012-10-19T00:36:25.827 に答える
1

datetime.timetupleまさにあなたが求めるもののようです:

>>> import datetime
>>> d = datetime.date(2012, 10, 18)
>>> d.timetuple()
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=292, tm_isdst=-1)
>>> tuple(d.timetuple())
(2012, 10, 18, 0, 0, 0, 3, 292, -1)
于 2012-10-19T00:40:29.670 に答える