次のコードをカレンダーで使用して、イベントに参加する必要があるまでの時間を教えてくれます。仕事が始まるまでの時間を表示する部分と、仕事のために起床するまでの時間を表示する部分の 2 つの部分があります。
work_alarm = timedelta(hours=2, minutes=30)
a_n = int((we_dt - tct).total_seconds() / 60) # to get minutes remaining from the current time to when work starts
alarm_time = we_dt - work_alarm
up_time = int((alarm_time - tct).total_seconds() / 60) # total minutes until I need to be up
print "Scheduled Work Time: " + str(we_dt.strftime('%H:%M'))
print "You have " + str(we[1]) + " in " + str(int((((we_dt - tct).total_seconds() / 60) / 60))) + " hours and " + str(divmod(a_n, 60)[1]) + " minutes."
print "You need to be up in " + str(int((((alarm_time - tct).total_seconds() / 60) / 60))) + " hours and " + str(divmod(up_time, 60)[1]) + " minutes."
「あなたが起きている必要がある」時間が経過するまで、それはすべてうまくいきます。イベント時間が経過すると報告を停止するので、特に問題はありませんが、必要な時間が経過したかどうかを確認または通知して表示を停止できるような if ステートメントを設定したいと思います。今のままでは、その時間が経過すると、反対方向に数が増え始めるからです。例: 起きなければならないまであと 1 分ある場合、ゼロになった後、1 分、2 分、3 分と上昇し始めます。数値は負の整数として表示されないため、これを比較する方法がわからないため、時間が経過したら表示を停止できます。重要な場合の注意として、このスクリプトは apscheduler モジュールを使用して毎分実行されます。どんな助けでも大歓迎です。