QA@IT

C# 時刻の比較について

8107 PV

C#初心者です。
C#でソフトを作り始めたのですが、時刻の比較が上手くいっていないためかイマイチ動きがよくありません。

beforetime(前)とaftertime(後)という2点の時刻を設定し、その前後内もしくは同時刻内にfiletimeがあればリストに追加するという想定です。

foreach (string s in files)
{
・・・・
   if((aftertime.CompareTo(filetime)==1)||(aftertime.CompareTo(filetime)==0))
   {
     if ((beforetime.CompareTo(filetime) == -1)||(beforetime.CompareTo(filetime)==0))
     {
       timefiles.Add(s);//期間内であればリストへ追加
     }
   }
}

上記のプログラムにおいて、
前(beforetime)→ 20:59:00 後(aftertime)→ 21:00:00
と設定し、
filetimeが20:59:00 , 21:00:00の二つをこのプログラムへ渡すと、どちらもリストへ追加するよう動く想定ですが
filetimeが21:00:00の時のみリストへ追加されます。

ドツボにはまっている、もしくは関数の使い方を間違っているのでしょうか。
ご教授いただければ幸いです。
よろしくお願いいたします。

回答

型情報が一切ないので何とも言えないんですが、

filetimeが20:59:00 , 21:00:00の二つをこのプログラムへ渡すと

これは 20:59:00 だけ渡したときもリストには追加されないんでしょうか。
ループ毎にtimefilesを初期化したりしてませんか?


それと、

if(beforetime <= filetime && filetime <= aftertime)

ではだめですか?

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。