web-dev-qa-db-ja.com

日時インスタンスが他の2つの日時オブジェクトの間にあるかどうかを確認します

datetimeの指定されたインスタンスがC#の別の2つのインスタンスの間にあるかどうかを確認する簡単なアルゴリズムを知りたいです。

注:

私はこれをざっと読みました 与えられたdatetimeオブジェクトが2つのdatetimeの間にあるかどうかを確認するにはどうすればいいですか? そしてそれはpythonおよびphpのためのより多くのものです。ほとんどの他の質問は、2つの違いに関するものでした。

詳細:

私は時間についてより具体的です、日付は私にとって重要ではありません。たとえば、10:00 Am-9:00 Pmとプリンシパルとして私との間で働くスタッフのDataBaseエントリを取得しました[たとえば] 2:00 Pmのような時間を与えられます。これで、この時点で従事しているスタッフの詳細が返されます。

51
Deeptechtons

DateTime.Ticksは時間を考慮します。 DateTimeで.Ticksを使用して、日付をlongに変換します。次に、単純なif stmtを使用して、ターゲットの日付が間にあるかどうかを確認します。

// Assuming you know d2 > d1
if (targetDt.Ticks > d1.Ticks && targetDt.Ticks < d2.Ticks)
{
    // targetDt is in between d1 and d2
}  
81
Jason Slocomb

単純な比較>および<を実行します。

if (dateA>dateB && dateA<dateC)
    //do something

時間通りにしか気にしない場合:

if (dateA.TimeOfDay>dateB.TimeOfDay && dateA.TimeOfDay<dateC.TimeOfDay)
    //do something
46
VikciaR

次を使用できます。

if ((DateTime.Compare(dateToCompare, dateIn) == 1) && (DateTime.Compare(dateToCompare, dateOut) == 1)
{
   //do code here
}

または

if ((dateToCompare.CompareTo(dateIn) == 1) && (dateToCompare.CompareTo(dateOut) == 1))
{
   //do code here
}
1
KaeL

自分でヘルパー関数を作成:

public static bool IsBewteenTwoDates(this DateTime dt, DateTime start, DateTime end)
{
    return dt >= start && dt <= end;
}

その後呼び出し: .IsBewteenTwoDates(DateTime.Today、new DateTime(,));

0
Wayne Hamberg