说明:以下文中本人使用的是C#语言,且时间精度为秒
有时候项目中会要求去判断两个时间是否是相等的,且是在误差范围内相等的,以下是本人项目中用到的算法,仅当做记事本而已,如有问题请指正,愿意相互学习。
相关类中自定义方法
// function: 判断两个时间是否在允许误差内相等
// params: 时间1、时间2、允许误差
public bool isTimeEqual(DateTime CurTime, DateTime RecTime, ushort errorValue)
{
bool res = false;
int P_CmpRes = 0;
int P_dayTmp = 0;
DateTime P_TimerHead, P_TimerLast;
P_CmpRes = DateTime.Compare(CurTime, RecTime);
if (errorValue > 60)
return false;
if (errorValue == 0)
{
if (P_CmpRes == 0)
{
res = true;
}
else
{
res = false;
}
}
else
{
if (P_CmpRes == 0) // 判断哪个时间在前
{
res = true;
}
else
{
if (P_CmpRes > 0)
{
P_TimerHead = CurTime;
P_TimerLast = RecTime;
}
else
{
P_TimerHead = RecTime;
P_TimerLast = CurTime;
}
// 时间不是严格相等但在误差范围内的一般情况
if (P_TimerHead.Year == P_TimerLast.Year)