ある時間のt分前を出力する方法について
例えば、06:30という時刻がすでに分かっており、この時間の25分前を表示する場合に、06:05と出力しなければいけないところ、何も考慮無しに書くと6:5のようになってしまうので、それを回避する方法を探しています。
より一般論として、以下のような入力値より現在時刻が与えられ、それをinput関数で取ってきて、そのt分前を出力する場合を考えます。
6 30
25
■1行目:現在時刻の「時」と「分」が半角スペースで与えられている/「時」は簡易的に1~9で考える
■2行目:現在時刻のt分前を考える際の値が与えられている(0<t<60)
これをコードで書いた際に、以下のようになってしまい、出力自体には問題がないのですが、チカラ技の感じがしてしまい、より効率的にできる方法はないでしょうか。
python
1hour, minute = map(int, input().split(" ")) 2t = int(input()) 3 4if minute > t: 5# minuteのほうがtより大きい場合は、hourに影響がでない 6 if minute - t >= 10: 7# minuteからtをひいて10以上であれば、「分」に"0"をいれなくてもよい 8 print("0" + str(hour) + ":" + str(minute - t)) 9 else: 10# minuteからtをひいて10未満であれば、「分」に"0"をいれなければならない 11 print("0" + str(hour) + ":0" + str(minute - t)) 12else: 13# minuteのほうがtより大きい場合は、hourに影響がでる 14 if minute + 60 - t >= 10: 15 print("0" + str(hour - 1) + ":" + str(minute + 60 - t)) 16 else: 17 print("0" + str(hour - 1) + ":0" + str(minute +60 - t))
これはこうするしかないのであれば問題ないのですが、良い方法があればご教示頂けますと幸いです。
※今回は簡易的に0<t<60としていますが、本来はt=200やt=300の場合でも応用できるようにしたいとは思っています
し、「時」も00~23で考えたいと思っています。ただ、一気に考えてしまうと、現段階の私のスキルでは、コードがすごく汚くなる気しかしないのですが、一旦は0<t<60で大丈夫です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 03:03