C#用TimeSpan的Days、Hours、Minutes及Seconds属性确定程序的运行时间

目录

一、TimeSpan结构的Days、Hours、Minutes及Seconds属性

1.Days属性

2.Hours属性

3.Minutes属性

4.Seconds属性

二、确定程序运行时间的方法

1.实例源码

2.生成效果


        在程序设计过程中,经常需要在主窗体中动态地显示程序的运行时间。

一、TimeSpan结构的Days、Hours、Minutes及Seconds属性

1.Days属性

        TimeSpan结构的Days属性用来获取由当前TimeSpan结构表示的整天数。 语法格式如下:

publie int Days {get;}参数说明
属性值:整型数值,表示此TimeSpan结构的天数部分。返回值可以是正数也可以是负数。

2.Hours属性

        TimeSpan结构的Hours属性用来获取由当前TimeSpan结构表示的整小时数。 语法格式如下:

public int Hours{get;}参数说明
属性值:整型数值,表示当前TimeSpan结构的小时分量。返回值的范围为-23~23。

3.Minutes属性

        TimeSpan结构的Minutes属性用来获取由当前TimeSpan结构表示的整分钟数。语法格式如下:

public int Minutes{get;}参数说明
属性值:整型数值,表示当前TimeSpan结构的分钟分量。返回值的范围为-59~59。

4.Seconds属性

        TimeSpan结构的Seconds属性用来获取由当前TimeSpan结构表示的整秒数。 语法格式如下:

public int Seconds {get;}参数说明
属性值:整型数值,表示当前TimeSpan结构的秒分量。返回值的范围为-59~59。

二、确定程序运行时间的方法

        在窗体Load事件中获取系统时间。然后,使用线程获取系统时间并与窗体载入时获取的时间相减,会得到一个TimeSpan对象,此TimeSpan对象就是程序运行的时间。最后,使用线程在StatusStrip中动态显示程序的运行时间。

1.实例源码

// 用TimeSpan的Days、Hours、Minutes及Seconds属性确定程序的运行时间
namespace _066
{public partial class Form1 : Form{private StatusStrip? statusStrip1;/*public*/ static ToolStripStatusLabel? toolStripStatusLabel1;/*public*/ static DateTime? datetime;//声明时间字段public Form1(){InitializeComponent();Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // toolStripStatusLabel1// toolStripStatusLabel1 = new ToolStripStatusLabel{Name = "toolStripStatusLabel1",Size = new Size(116, 17),Text = "程序运行的时间是:"};// // statusStrip1// statusStrip1 = new StatusStrip{Location = new Point(0, 89),Name = "statusStrip1",Size = new Size(364, 22),TabIndex = 0,Text = "statusStrip1"};statusStrip1.Items.AddRange(new ToolStripItem[] { toolStripStatusLabel1 });statusStrip1.SuspendLayout();          // // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(364, 111);Controls.Add(statusStrip1);Name = "Form1";StartPosition = FormStartPosition.CenterScreen;Text = "用TimeSpan属性确定程序的运行时间";statusStrip1.ResumeLayout(false);statusStrip1.PerformLayout();ResumeLayout(false);PerformLayout();CalculateTime();}private static void CalculateTime(){datetime = DateTime.Now;Thread thread = new(() =>               //使用Lambda表达式创建线程{while (true)    //无限循环{TimeSpan timespan = (TimeSpan)(DateTime.Now - datetime);Parallel.Invoke(() =>  //使用Lambda表达式调用窗体线程{toolStripStatusLabel1!.Text = string.Format(//显示程序启动时间"系统已经运行: {0}天{1}小时{2}分{3}秒",timespan.Days, timespan.Hours,timespan.Minutes, timespan.Seconds);});Thread.Sleep(1000);//线程挂起1秒钟}}){IsBackground = true};thread.Start();}}
}

2.生成效果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/441192.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

001集—shapefile(.shp)格式详解——arcgis

一、什么是shapefile Shapefile 是一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式。shapefile 中的地理要素可通过点、线或面(区域)来表示。包含 shapefile 的工作空间还可以包含 dBASE 表,它们用于存储可连接到 shapefile 的要…

C与C++相互调用的“底层原理“

在你的C语言代码中,不知能否看到类似下面的代码: 这好像没有什么问题,你应该还会想:“嗯⋯是啊,我们的代码都是这样写的,从来没有因此碰到过什么麻烦啊~”。 你说的没错,如果你的头…

共性化异步任务处理

背景 考虑到现有业务很多依赖于MQ的方式进行,这种方式需要依赖于MQ,发送消息到mq和消费mq消息时需要了解mq消息结构进行相应处理; 对于后续对同样的事件做其他处理的人如不能提前了解到已有相应消息发到了mq就得再发一次消息到mq等。 图1.1…

为什么说2023年是AI元年

前言 思考者~ 2023年被称为AI元年,主要是因为在这一年中,人工智能技术在各个领域取得了突破性的进展和应用,这些技术的广泛应用深刻地影响了人们的生活和工作方式,也预示着未来AI技术的更大潜力和发展空间。 首先,…

第 8 章:Linux中使用时钟、计时器和信号

在本章中,我们将开始探索Linux环境中可用的各种计时器。随后,我们将深入了解时钟的重要性,并探讨UNIX时间的概念。接下来,我们将揭示在Linux中使用POSIX准确测量时间间隔的方法。之后,我们将进入std::chrono的领域&…

透明拼接屏生产全解析:从生产流程到质量标准与出货流程

透明拼接屏,作为现代显示技术中的佼佼者,其生产过程复杂而严谨。本文将详细介绍透明拼接屏的生产流程、质量标准以及出货流程,尼伽小编带您了解这一高科技产品背后的精湛工艺。 一、生产流程 原材料采购与检验:生产透明拼接屏的第…

实用干货:分享一个““自动转``的VSCode插件

大家好,我是大澈! 本文约1000字,整篇阅读大约需要2分钟。 感谢关注微信公众号:“程序员大澈”,免费领取"面试礼包"一份,然后免费加入问答群,从此让解决问题的你不再孤单&#xff01…

数学算法知识编程

(1)辗转相除法求最大公约数(gcd) 辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现…

分布式ID介绍实现方案总结

分布式 ID 介绍 什么是 ID? 日常开发中,我们需要对系统中的各种数据使用 ID 唯一表示,比如用户 ID 对应且仅对应一个人,商品 ID 对应且仅对应一件商品,订单 ID 对应且仅对应一个订单。 我们现实生活中也有各种 ID&…

原来服务器这么有用-使用轻量应用服务器搭建专属自己PDF处理工具

原来服务器这么有用-使用轻量应用服务器搭建专属自己PDF处理工具 1、前言 PDF文件是日常办公中经常使用的一种文档格式。最近,青阳面临一个问题:某公司发送过来的文件需要我们进行印章流程,但由于该公司系统在电子文件加盖电子公章后会自动…

OpenGL ES 渲染 NV21、NV12 格式图像有哪些“姿势”?

使用2个纹理实现 NV21 格式图像渲染 前文提到渲染 NV21 格式图像需要使用 2 个纹理,分别用于保存 Y plane 和 UV plane 的数据,然后在片段着色器中分别对 2 个纹理进行采样,转换成 RGB 数据。 OpenGLES 渲染 NV21或 NV12 格式图像需要用到 GL_LUMINANCE 和 GL_LUMINANCE_A…

Covalent (CQT):构建全新链上协议收入体系,致力于财务透明

在充满活力的区块链世界以及去中心化技术领域,Covalent Network(CQT) 正在通过其创新的协议收入模型对链上经济体系进行重塑。这一特性与传统金融系统不同,这一特性带来了无与伦比的可访问性,消除了中介,并…