\r
public TimeSpan Rest { get; private set; }\r
\r
+ public bool IsFinished\r
+ {\r
+ get { return _endTime != DateTime.MinValue && Rest <= _spare; }\r
+ }\r
+\r
+ public bool NeedRing { get; set; }\r
+\r
public RingTimer(int spare = 60)\r
{\r
_spare = TimeSpan.FromSeconds(spare);\r
public void SetEndTime(DateTime time)\r
{\r
_endTime = time;\r
- if (_endTime == DateTime.MinValue)\r
- IsFinished = false;\r
}\r
\r
public void Update()\r
Rest = TimeSpan.Zero;\r
return;\r
}\r
+ var prev = Rest;\r
Rest = _endTime - DateTime.Now;\r
if (Rest < TimeSpan.Zero)\r
Rest = TimeSpan.Zero;\r
- if (Rest > _spare || IsFinished)\r
- return;\r
- IsFinished = true;\r
- NeedRing = true;\r
+ if (prev > _spare && _spare >= Rest)\r
+ NeedRing = true;\r
}\r
-\r
- public bool IsFinished { get; private set; }\r
- public bool NeedRing { get; set; }\r
}\r
}
\ No newline at end of file