2016-04-09 8 views
0

私はあなたが学校にいる期間を決定するプログラムを作成しています。スケジュールは特定の日に異なりますので、あなたはあなたが何のスケジュールを見つけるのではなく、単にプログラムを実行することができます。2つの日時の値の間にテキストを出力する

私は 'DateTime'インポートを使用しています。問題は特定のクラスが7:45というと9:50で終了することがあります。私が2つの時間をプログラミングしている方法は、テキストが表示されないように、お互いに矛盾しています。ここ

は、コードの抜粋です:

if sch == "A": 
    if hour >= 7 and min >= 45: 
     if hour <= 9 and min <= 50: 
      print("It is period 1; Class ends at 9:50AM") 

それは、私たちは7:45から始まり、9時50分AMに終了予定の「A」にあるプログラムで以前に決定されました。要するに、私はそれらの2つの時間の間にメッセージを表示したい。このタスクの

+0

ポストは、いくつかの期待と実際の出力は、私たちはあなたにいくつかのより多くの – n1c9

+0

あなたのトウを助けることができる9> =時間> = 7および50の場合> = min> = 45: 'あなたのロジックは間違っています。時刻は7:45から9:500までですが、分は45と50との間ではありません。datetimesを使用している場合はdatetimeを比較してください。 –

答えて

0

使用datetime

from datetime import datetime 

begin = '07:45:00' 
end = '09:50:00' # for example 
current_time = '10:32:13' 

FMT = '%H:%M:%S' # format time 

if sch == "A": 
    if datetime.strptime(begin, FMT) < \ 
      datetime.strptime(current_time, FMT) < \ 
      datetime.strptime(end, FMT): 
     print("It is period 1; Class ends at 9:50AM") 
0

私はあなたが45〜50の範囲内のもの以外の分を可能にするものではないので、あなたのロジックがオフになっているコメントとして、あなたはとても比較に固執日付時刻を使用していますdatetimes.time's時と分が7:45-9:50の範囲内にあるかどうかを確認します。

from datetime import time 

# cretate a start and end time 
start, end = time(7, 45, 0), time(9, 50, 0) 

# pass whatever hour and min are in your code to time 
hour_min = time(7, 46) 

# check the times falls in the range 7:45-9:50 
if start <= hour_min <= end: 
    print("It is period 1; Class ends at 9:50AM") 
+0

何も出力されませんでした(それはその時ではないと仮定しています)...テスト目的で時間を「模倣する」方法があるかどうか疑問に思っていました。 – iw0542

+0

@ iw0542、範囲(24)の範囲で 'for range(60)' ... –

+0

Okを使用してください。私はそれをもう少し理解することができるようにあなたのコードに注釈を付けることができますか?私はこのdatetimeの使い方に慣れていません。編集:また、 "それは期間1です、クラスは9時50分に終わる"が常に表示されるように見えます。私は何かを誤解していると思います。 – iw0542

0

あなたはこれを試すことができますのは、 ` になることができるかどう

from datetime import time 

if sch == "A": 
    if time(hour=7, minute=45) <= time(hour=hour, minute=minute) <= time(hour=9, minute=45): 
     print("It is period 1; Class ends at 9:50AM") 
関連する問題