datetime
の指定されたインスタンスがC#
の別の2つのインスタンスの間にあるかどうかを確認する簡単なアルゴリズムを知りたいです。
注:
私はこれをざっと読みました 与えられたdatetimeオブジェクトが2つのdatetimeの間にあるかどうかを確認するにはどうすればいいですか? そしてそれはpythonおよびphpのためのより多くのものです。ほとんどの他の質問は、2つの違いに関するものでした。
詳細:
私は時間についてより具体的です、日付は私にとって重要ではありません。たとえば、10:00
Am-9:00
Pmとプリンシパルとして私との間で働くスタッフのDataBase
エントリを取得しました[たとえば] 2:00 Pm
のような時間を与えられます。これで、この時点で従事しているスタッフの詳細が返されます。
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
}
単純な比較>および<を実行します。
if (dateA>dateB && dateA<dateC)
//do something
時間通りにしか気にしない場合:
if (dateA.TimeOfDay>dateB.TimeOfDay && dateA.TimeOfDay<dateC.TimeOfDay)
//do something
次を使用できます。
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
}
自分でヘルパー関数を作成:
public static bool IsBewteenTwoDates(this DateTime dt, DateTime start, DateTime end)
{
return dt >= start && dt <= end;
}
その後呼び出し: .IsBewteenTwoDates(DateTime.Today、new DateTime(,));