123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- /// <summary>
- /// 时间管理器
- /// </summary>
- public class TimeHelper
- {
- /// <summary>
- /// 初始时间
- /// </summary>
- private DateTime mInitTime = DateTime.MaxValue;
- /// <summary>
- /// 倍数
- /// </summary>
- private float mSpeed = 1;
- /// <summary>
- /// 总持续毫秒数
- /// </summary>
- private double totalMillsec = 0;
- /// <summary>
- /// 上一次检查时间
- /// </summary>
- private DateTime mLastCheckTime = DateTime.MinValue;
- /// <summary>
- /// 是否暂停
- /// </summary>
- private bool mIsPause = false;
- /// <summary>
- /// 开始计时
- /// </summary>
- public void Start()
- {
- this.mInitTime = DateTime.MinValue;
- this.mSpeed = 1.0f;
- this.totalMillsec = 0;
- this.mLastCheckTime = DateTime.Now;
- this.mIsPause = false;
- }
- /// <summary>
- /// 获取当前时间倍率
- /// </summary>
- /// <returns>倍率值</returns>
- public float GetSpeed()
- {
- return this.mSpeed;
- }
- /// <summary>
- /// 设置时间倍率
- /// </summary>
- /// <param name="val">倍率值</param>
- public void SetSpeed(float val)
- {
- this.mSpeed = val;
- }
- /// <summary>
- /// 暂停计时器
- /// </summary>
- public void Pause()
- {
- this.Update();
- this.mIsPause = true;
- }
- /// <summary>
- /// 继续计时器
- /// </summary>
- public void Continue()
- {
- this.mIsPause = false;
- this.mLastCheckTime = DateTime.Now;
- }
- /// <summary>
- /// 时间刷新
- /// </summary>
- public void Update()
- {
- if (this.mIsPause == true)
- {
- return;
- }
- TimeSpan span = DateTime.Now - this.mLastCheckTime;
- this.totalMillsec += span.TotalMilliseconds * this.mSpeed;
- this.mLastCheckTime = DateTime.Now;
- }
- /// <summary>
- /// 获取当前时间
- /// </summary>
- /// <returns>时间</returns>
- public long Now()
- {
- return (long)this.totalMillsec;
- }
- }
|