首页 / C# / C#-计算服务的正常运行时间/停机时间
C#-计算服务的正常运行时间/停机时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-计算服务的正常运行时间/停机时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1732字,纯文字阅读大概需要3分钟。
内容图文
![C#-计算服务的正常运行时间/停机时间](/upload/InfoBanner/zyjiaocheng/681/24277278727e46d380a71447a8e3f1f6.jpg)
我有一个自定义解决方案,每隔1小时检查一个网站是否在线.
结果是这样的:(每天有一个条目)
一天(每小时)中有24个条目.每小时都有一个可用性百分比(100%,95%,0%等等).
我的问题是:
>如何获得正常运行时间和停机时间百分比?
>如何使用两个日期DateTime之间的这些值计算正常运行时间和停机时间,并以秒为单位获取结果?
正常运行时间很容易:
>所有值的总和除以24(条目),即99.67%
然后对于停机时间,我能做100-99.67 = 0.33%吗?
我在获取两个日期之间的正常运行时间/停机时间有一些问题DateTime
例如:如果范围日期为20.04.2015-26.05.2015
我想我应该这样做:
对于每天的正常运行时间,请按上述方式计算(所有每日值的总和除以24个条目),并假设以下值:
> 2015年4月20日:96.67%
> 21.04.2015:100.00%
> 2015年4月22日:92.00%
> 2015年4月23日:96.67%
> 2015年4月24日:100.00%
> 2015年4月25日:100.00%
> 2015年4月26日:100.00%
现在,上述值的总和除以天数(20.04和26.04之间为7天),这使得20.04和26.04之间的可用性为97.91%.
我假设要在几秒钟内获得97.91%的正常运行时间,我应该这样做:
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime first = DateTime.ParseExact("20.04.2015", "dd.MM.yyyy", provider);
DateTime last = DateTime.ParseExact("26.04.2015", "dd.MM.yyyy", provider);
TimeSpan time = last - first;
decimal secondsUptime = ((time.Days * 86400)/100) * 97.91m; //97.91 is the uptime calculated above for the time period.
// The problem is how to get this?
decimal secondsDowntime = ?
到目前为止,我所做的是正确的方法吗?
如何获得secondsDowntime?
解决方法:
如果您已经有正常运行时间百分比,那么您所要做的就是非常简单的数学运算:
decimal PercentDownTime = 100 - PercentUpTime;
decimal SecondsUpTime = (time.Seconds / 100) * PercentUpTime;
decimal SecondsDownTime = (time.Seconds / 100) * PercentDownTime;
感谢Robert提醒我们TimeSpan的TotalSeconds属性,但是在这种情况下可以使用Seconds属性.
内容总结
以上是互联网集市为您收集整理的C#-计算服务的正常运行时间/停机时间全部内容,希望文章能够帮你解决C#-计算服务的正常运行时间/停机时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。