私はpythonスクリプトを使用してボタンオブジェクトから文字列を取得していますので、それを格納する文字列から取得した時刻で日付書式を設定することができますリスト。ボタンオブジェクトから文字列を取得すると、各文字列の日付を設定したいとします(例:29/08/2017 11:30PM
、30/08/2017 12:00AM
、30/08/2017 12:30AM
)。pythonで前日の日付に変更する
私はこれしようとすると:それは出力が表示されます
if day_date >= 0 and day_date <= 6:
if epg_time3 == '12:00AM':
if day_date > 0:
currentday = datetime.datetime.now() + datetime.timedelta(days = 0)
nextday = datetime.datetime.now() + datetime.timedelta(days = self.program_day)
if currentday != nextday:
epg_time_1 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
epg_time_2 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
epg_time_3 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
elif currentday == nextday:
epg_time_1 = datetime.datetime.now() + datetime.timedelta(days = self.program_day)
epg_time_2 = datetime.datetime.now() + datetime.timedelta(days = self.program_day - 1)
epg_time_3 = datetime.datetime.now() + datetime.timedelta(days = self.program_day - 1)
:
:私はEPG_Timesが再び機能呼んでいるときself.epg_time_1
['29/08/2017 11:00PM']
self.epg_time_2
['29/08/2017 11:30PM']
self.epg_time_3
['29/08/2017 12:00AM']
が、それはこのような出力が表示されます
self.epg_time_1
['30/08/2017 11:00PM']
self.epg_time_2
['30/08/2017 11:30PM']
self.epg_time_3
['30/08/2017 12:00AM']
これは次のとおりです。
self.epg_time_1
['30/08/2017 11:00PM']
self.epg_time_2
['30/08/2017 11:30PM']
self.epg_time_3
['31/08/2017 12:00AM']
ご覧のとおり、12:00AM
は翌日ですので、31
ではなく30
に設定します。私はdays = self.program_day - 1
へdays = self.program_day + 1
から変更されているが、文字列は、変数epg_time_1
、epg_time_2
とepg_time_3
から11:00PM
、11:30PM
と12:00AM
を表示するとき、それはこのような出力が表示されます:
self.epg_time_1
['30/08/2017 11:00PM']
self.epg_time_2
['30/08/2017 11:30PM']
self.epg_time_3
['30/08/2017 12:00AM']
は完全なコードです
self.program_day = list()
def EPG_Times(self):
self.epg_time_1 = list()
self.epg_time_2 = list()
self.epg_time_3 = list()
epg_time1 = str(self.getControl(344).getLabel())
epg_time2 = str(self.getControl(345).getLabel())
epg_time3 = str(self.getControl(346).getLabel())
day_date = self.program_day
day = ''
month = ''
year = ''
if day_date >= 0 and day_date <= 6:
if epg_time3 == '12:00AM':
if day_date == 0:
if epg_time1 == '12:00AM':
epg_time_1 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
epg_time_2 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
epg_time_3 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
else:
epg_time_1 = datetime.datetime.now() + datetime.timedelta(days = self.program_day)
epg_time_2 = datetime.datetime.now() + datetime.timedelta(days = self.program_day)
epg_time_3 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
else:
currentday = datetime.datetime.now() + datetime.timedelta(days = 0)
nextday = datetime.datetime.now() + datetime.timedelta(days = self.program_day)
if currentday != nextday:
epg_time_1 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
epg_time_2 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
epg_time_3 = datetime.datetime.now() + datetime.timedelta(days = self.program_day + 1)
elif currentday == nextday:
epg_time_1 = datetime.datetime.now() + datetime.timedelta(days = self.program_day)
epg_time_2 = datetime.datetime.now() + datetime.timedelta(days = self.program_day - 1)
epg_time_3 = datetime.datetime.now() + datetime.timedelta(days = self.program_day - 1)
epg1_day = epg_time_1.strftime("%d")
epg1_month = epg_time_1.strftime("%m")
epg1_year = epg_time_1.strftime("%Y")
epg2_day = epg_time_2.strftime("%d")
epg2_month = epg_time_2.strftime("%m")
epg2_year = epg_time_2.strftime("%Y")
epg3_day = epg_time_2.strftime("%d")
epg3_month = epg_time_2.strftime("%m")
epg3_year = epg_time_2.strftime("%Y")
half_hour = str(epg1_day + "/" + epg1_month + "/" + epg1_year + " " + epg_time1)
one_hour = str(epg2_day + "/" + epg2_month + "/" + epg2_year + " " + epg_time2)
one_hour_half = str(epg3_day + "/" + epg3_month + "/" + epg3_year + " " + epg_time3)
#Store the times and date in the list....
self.epg_time_1.append(half_hour)
self.epg_time_2.append(one_hour)
self.epg_time_3.append(one_hour_half)
コードは、EPG_time(self)関数を呼び出すとボタンオブジェクトから取得する各文字列の前日の日付に変更することが期待されています。 epg_time_1
とepg_time_2
は、文字列11:00PM
と11:30PM
を示した場合、私はepg_time_1
とepg_time_2
ため29/08/2017 11:30PM
ため29/08/2017 11:00PM
に日付と時刻を設定します。 epg_time_3
に文字列12:00AM
が表示されている場合は、翌日の日付に30/08/2017 12:00AM
という文字列を追加します。次の24時間で
epg_time_1
とepg_time_2
は、文字列11:00PM
と11:30PM
を示している場合、私はepg_time_1
とepg_time_2
ため30/08/2017 11:30PM
ため30/08/2017 11:00PM
に日付と時刻を設定します。 epg_time_3
が、私はepg_time_1
とepg_time_2
は、文字列11:30PM
と12:00AM
を表示した場合の時間1/09/2017 12:00AM
と翌日の日付に設定したい文字列12:00AM
を示した場合、私はそれがあるepg_time_1
の前の日付に変更したいです29/08/2017 11:30PM
および30/08/2017 12:00AM
。それはリストに文字列を保存した日時によって変わります。
あなたは私が前の日付に日付を変更し、翌日の日付にpythonを使って追加する方法を教えていただけますか?
このテキストを少しまとめてください。実際には 'strptime'を使って文字列をdatetimesに変換するだけです。変更日数のすべてのロジックは、日時モジュール自体によって処理されます。 – roganjosh
そうですね、私はおそらく例としてここに何かを置くことができますが、提示されたものからあなたの質問に適切に答えることは不可能だと思います。私はいくつかの前提を作らなければならないでしょう。異なる日時を表す3つの文字列のリストを取得するには、これらに一定の日数(1から6まで)を追加する必要があります。この変更を反映させるにはdatetimesを使用しますか? – roganjosh