/// <summary>
/// 间隔指定的时间
/// </summary>
public class Times
{
/// <summary>
/// 内置一个时间
/// </summary>
private DateTime Time = DateTime.Now;
/// <summary>
/// 间隔的秒数
/// </summary>
private int interval = 1;
/// <summary>
/// 经过的时间
/// </summary>
private int Overytime = 0;
/// <summary>
/// 构造
/// </summary>
/// <param name="interval">间隔 秒</param>
public Times(int interval)
{
Time = DateTime.Now;
this.interval = interval;
}
/// <summary>
/// 开始处理
/// </summary>
/// <param name="IsFirst">是否触发一次</param>
/// <returns></returns>
public bool StartProcess(bool IsFirst = true)
{
bool IsTrue = false;
int time = getSeconds(DateTime.Now) - getSeconds(Time);
if (time % interval == 0)
{
IsTrue = true;
}
if (IsFirst)
{
if (IsTrue == true)
{
if (Overytime == time)
{
IsTrue = false;
}
else
{
Overytime = time;
}
}
}
return IsTrue;
}
/// <summary>
/// 获取总秒数
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
public static int getSeconds(DateTime time)
{
return time.Second +
time.Minute * 60 +
time.Hour * 60 * 60 +
time.Day * 24 * 60 * 60 +
time.Year * 365 * 24 * 60 * 60;
}
}