目錄
- 1.使用DateTime.Compare()
- 2.透過時間相減計算時間間隔,可以指定精確度
1.使用DateTime.Compare()
- 注意:兩個比較的時間,一定與相同的時間精度,比如都精確到分鐘,或都精確到日
- 注意:這裡我判斷指定時間是否在時間範圍的閉區間裡
/// <summary>
/// 判斷指定的時間是否在指定的範圍
/// </summary>
/// <param name="dateTime">指定時間,字串型別,形如:yyyy-MM-dd hh:mm:ss</param>
/// <param name="startTime">開始時間,字串型別,形如:yyyy-MM-dd hh:mm:ss</param>
/// <param name="endTime">結束時間,字串型別,形如:yyyy-MM-dd hh:mm:ss</param>
/// <returns></returns>
public static bool IsBetweenTimeSpan(string dateTime, string startTime, string endTime)
{
DateTime dt = Convert.ToDateTime(dateTime);
DateTime dtStartTime = Convert.ToDateTime(startTime);
DateTime dtEndTime = Convert.ToDateTime(endTime);
int compNum1 = DateTime.Compare(dt, dtStartTime);
int compNum2 = DateTime.Compare(dt, dtEndTime);
return compNum1 >= 0 && compNum2 <= 0;
}
2.透過時間相減計算時間間隔,可以指定精確度
- 注意:這裡我使用的TotalSeconds(),讓比較時間精確到秒
- 注意:這裡我判斷指定時間是否在時間範圍的閉區間裡
/// <summary>
/// 判斷指定的時間是否在指定的範圍
/// </summary>
/// <param name="dateTime">指定時間,字串型別,形如:yyyy-MM-dd hh:mm:ss</param>
/// <param name="startTime">開始時間,字串型別,形如:yyyy-MM-dd hh:mm:ss</param>
/// <param name="endTime">結束時間,字串型別,形如:yyyy-MM-dd hh:mm:ss</param>
/// <returns></returns>
public static bool IsBetweenTimeSpan(string dateTime, string startTime, string endTime)
{
DateTime dt = Convert.ToDateTime(dateTime);
DateTime dtStartTime = Convert.ToDateTime(startTime);
DateTime dtEndTime = Convert.ToDateTime(endTime);
double ts1 = (dt - dtStartTime).TotalSeconds;
double ts2 = (dt - dtEndTime).TotalSeconds;
return ts1 >= 0 && ts2 <= 0;
}
/// <summary>
/// 判斷指定的時間是否在指定的範圍
/// </summary>
/// <param name="dateTime">指定時間,DateTime型別</param>
/// <param name="startTime">開始時間,DateTime型別</param>
/// <param name="endTime">結束時間,DateTime型別</param>
/// <returns></returns>
public static bool IsBetweenTimeSpan(DateTime dateTime, DateTime startTime, DateTime endTime)
{
double ts1 = (dateTime - startTime).TotalSeconds;
double ts2 = (dateTime - endTime).TotalSeconds;
return ts1 >= 0 && ts2 <= 0;
}
/// <summary>
/// 判斷當前時間是否在指定的範圍
/// </summary>
/// <param name="startTime">開始時間,DateTime型別</param>
/// <param name="endTime">結束時間,DateTime型別</param>
/// <returns></returns>
public static bool IsBetweenTimeSpan(DateTime startTime, DateTime endTime)
{
DateTime dateTime = DateTime.Now;
double ts1 = (dateTime - startTime).TotalSeconds;
double ts2 = (dateTime - endTime).TotalSeconds;
return ts1 >= 0 && ts2 <=0;
}