C#使用TimeSpan对象获取时间间隔

news2024/9/27 2:43:36

目录

一、TimeSpan基础知识

二、实例


一、TimeSpan基础知识

        使用TimeSpan对象可以方便地获取两个时间段的间隔。两个时间信息相减后会得到一个TimeSpan对象,该TimeSpan对象代表时间间隔,可以通过TimeSpan对象的Days、Hours、Minutes、Seconds、Milliseconds属性分别得到间隔的天、时、分、秒、毫秒数。

        TimeSpan对象代表两个时间段的间隔或跨度,使用TimeSpan对象可以方便地获取两个时间段的间隔。两个时间信息相减后会得到一个TimeSpan对象,该TimeSpan对象代表时间间隔,可以通过TimeSpan对象的Days、Hours、Minutes、Seconds、Milliseconds属性分别得到间隔的天、时、分、秒、毫秒数。 

        可以调用TimeSpan的Add方法,得到两个TimeSpan持续时间的

二、实例

         使用TimeSpan对象获取时间间隔。

// 使用TimeSpan对象获取时间间隔
namespace _064
{
    public partial class Form1 : Form
    {
        private GroupBox? groupBox1;
        private GroupBox? groupBox2;
        private GroupBox? groupBox3;
        private Button? button1;
        private Button? button2;       
        private Button? button3;
        private Label? label1;
        private Label? label2;
        private Label? label3;
        public DateTime DateTime_First,DateTime_Second;

        public Form1()
        {
            InitializeComponent();
            Load += Form1_Load;
        }

        private void Form1_Load(object? sender, EventArgs e)
        {
            // 
            // button1
            // 
            button1 = new Button
            {
                Location = new Point(108, 22),
                Name = "button1",
                Size = new Size(106, 23),
                TabIndex = 0,
                Text = "第一次获取时间",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // button2
            //  
            button2 = new Button
            {
                Location = new Point(108, 22),
                Name = "button2",
                Size = new Size(108, 23),
                TabIndex = 0,
                Text = "第二次获取时间",
                UseVisualStyleBackColor = true
            };
            button2.Click += Button2_Click;
            // 
            // button3
            //         
            button3 = new Button
            {
                Location = new Point(106, 22),
                Name = "button3",
                Size = new Size(108, 23),
                TabIndex = 0,
                Text = "计算时间间隔",
                UseVisualStyleBackColor = true
            };
            button3.Click += Button3_Click;
            // 
            // label1
            // 
            label1 = new Label
            {
                AutoSize = true,
                Location = new Point(26, 47),
                Name = "label1",
                Size = new Size(43, 17),
                TabIndex = 1,
                Text = "label1"
            };
            // 
            // label2
            // 
            label2 = new Label
            {
                AutoSize = true,
                Location = new Point(26, 50),
                Name = "label2",
                Size = new Size(43, 17),
                TabIndex = 1,
                Text = "label2"
            };
            // 
            // label3
            //          
            label3 = new Label
            {
                AutoSize = true,
                Location = new Point(71, 51),
                Name = "label3",
                Size = new Size(43, 17),
                TabIndex = 1,
                Text = "label3"
            };
            // 
            // groupBox1
            // 
            groupBox1 = new GroupBox
            {
                Location = new Point(12, 12),
                Name = "groupBox1",
                Size = new Size(315, 75),
                TabIndex = 0,
                TabStop = false,
                Text = "第一次获取时间"
            };
            groupBox1.Controls.Add(label1);
            groupBox1.Controls.Add(button1);
            groupBox1.SuspendLayout();
            // 
            // groupBox2
            // 
            groupBox2 = new GroupBox
            {
                Location = new Point(12, 94),
                Name = "groupBox2",
                Size = new Size(315, 75),
                TabIndex = 1,
                TabStop = false,
                Text = "第二次获取时间"
            };
            groupBox2.Controls.Add(label2);
            groupBox2.Controls.Add(button2);
            groupBox2.SuspendLayout();
            // 
            // groupBox3
            // 
            groupBox3 = new GroupBox
            {
                Location = new Point(12, 176),
                Name = "groupBox3",
                Size = new Size(315, 75),
                TabIndex = 2,
                TabStop = false,
                Text = "时间间隔"
            };
            groupBox3.Controls.Add(label3);
            groupBox3.Controls.Add(button3);
            groupBox3.SuspendLayout();
           
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(339, 263);
            Controls.Add(groupBox3);
            Controls.Add(groupBox2);
            Controls.Add(groupBox1);
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "使用TimeSpan对象获取时间间隔";
            groupBox1.ResumeLayout(false);
            groupBox1.PerformLayout();
            groupBox2.ResumeLayout(false);
            groupBox2.PerformLayout();
            groupBox3.ResumeLayout(false);
            groupBox3.PerformLayout();
        }
        /// <summary>
        /// 第一次获取时间
        /// </summary>
        private void Button1_Click(object? sender, EventArgs e)
        {
            DateTime_First = DateTime.Now;//为时间字段赋值
            label1!.Text = "系统时间:" + DateTime_First.ToString(
                "yyyy年M月d日 H时m分s秒 fff毫秒");
        }
        /// <summary>
        /// 第二次获取时间
        /// </summary>
        private void Button2_Click(object? sender, EventArgs e)
        {
            DateTime_Second = DateTime.Now;//为时间字段赋值
            label2!.Text = "系统时间:" + DateTime_Second.ToString(
                "yyyy年M月d日 H时m分s秒 fff毫秒");
        }
        /// <summary>
        /// 计算时间间隔
        /// </summary>
        private void Button3_Click(object? sender, EventArgs e)
        {
            TimeSpan timespan =//计算两个时间的时间间隔
                DateTime_First > DateTime_Second ?
                DateTime_First - DateTime_Second :
                DateTime_Second - DateTime_First;
            label3!.Text = string.Format("间隔时间:{0}天{1}时{2}分{3}秒 {4}毫秒",
                timespan.Days, timespan.Hours,
                timespan.Minutes, timespan.Seconds,
                timespan.Milliseconds);
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云幻兽帕鲁专有服务器配置价格表,4核16G、8核32G

幻兽帕鲁服务器配置CPU内存多大合适&#xff1f;如何选择&#xff1f;最低4核8G起步&#xff0c;4核16G是官方推荐配置&#xff0c;最好是4核32G配置。阿腾云atengyun.com分享幻兽帕鲁Palworld服务器CPU内存配置及租用费用&#xff0c;如下图&#xff0c;Palworld官方推荐服务器…

利用Django搭建python web项目(简单登录)

1.概述 目前市面上web项目大多数是由java语言开发&#xff08;结合spring框架&#xff09;&#xff0c;但这并不意味着只有java语言能够开发web项目&#xff0c;python语言、go语言同样可以做到。本文将利用Django框架&#xff08;由python语言开发的web框架&#xff09;来搭建…

09. Springboot集成sse服务端推流

目录 1、前言 2、什么是SSE 2.1、技术原理 2.2、SSE和WebSocket 2.2.1、SSE (Server-Sent Events) 2.2.2、WebSocket 2.2.3、选择 SSE 还是 WebSocket&#xff1f; 3、Springboot快速集成 3.1、添加依赖 3.2、创建SSE控制器 3.2.1、SSEmitter创建实例 3.2.2、SSEmi…

esp32 操作DS1307时钟芯片

电气参数摘要 有VCC供电&#xff0c;IIC活动状态是1.5mA&#xff0c;待机状态200μA&#xff0c;电池电流5nA(MAX50nA&#xff09;无VCC供电的时候&#xff0c;电池电流&#xff0c;300nA&#xff08;时钟运行&#xff09;&#xff0c;10nA&#xff08;时钟停止&#xff09;供…

ASP.NET Core 7 Web 使用Session

ASP.NET Core 好像不能像20年前那样直接使用Session函数&#xff0c;我使用如下方法 1、在NuGet安装以下2个包 2、在Program.cs注册 //注册Session builder.Services.AddSession(options > {options.IdleTimeout TimeSpan.FromMinutes(60);options.Cookie.HttpOnly fals…

大小端(C语言)

一、什么是大小端&#xff1a; 1.大端(Big-Endian):高地址存放低位 2.小端(Little-Endian):高地址存放高位 例如&#xff1a;0x11223344在内存中存储 大小端影响了什么&#xff1f; 当基本数据类型占用字节数超过了1字节后&#xff0c;大小端决定了数据按照什么顺序存储在…

3. SQL 语言

重点&#xff1a; MySQL 的 三种安装方式&#xff1a;包安装&#xff0c;二进制安装&#xff0c;源码编译安装。 MySQL 的 基本使用 MySQL 多实例 DDLcreate alter drop DML insert update delete DQL select 3&#xff09;SQL 语言 3.1&#xff09;关系型数据库的常见…

C语言-算法-背包

[USACO07DEC] Charm Bracelet S&#xff08;01背包&#xff09; 题目描述 Bessie has gone to the mall’s jewelry store and spies a charm bracelet. Of course, she’d like to fill it with the best charms possible from the N (1 ≤ N ≤ 3,402) available charms. E…

通过LiveNVR实现海康大华华为宇视等监控摄像头在服务器上录像存储,并web无插件直播和回放

支持云端录像服务器上面集中录像存储在部署LiveNVR的服务器上面 1、流媒体服务软件2、配置开启录像(云端录像)3、录像回看(云端录像)3.1、查看录像3.1.1、时间轴视图3.1.2、列表视图 4、云端录像相关接口5、如何分享时间轴录像回看&#xff1f;6、iframe集成示例7、RTSP/HLS/FL…

Docker 容器内运行 mysqldump 命令来导出 MySQL 数据库,自动化备份

备份容器数据库命令&#xff1a; docker exec 容器名称或ID mysqldump -u用户名 -p密码 数据库名称 > 导出文件.sql请替换以下占位符&#xff1a; 容器名称或ID&#xff1a;您的 MySQL 容器的名称或ID。用户名&#xff1a;您的 MySQL 用户名。密码&#xff1a;您的 MySQL …

数据结构——用链表实现Map

目录 一、映射&#xff08;Map&#xff09; 二、代码实现 1.建立接口 2.方法实现 &#xff08;1&#xff09;映射的建立 键&#xff08;key&#xff09;和值&#xff08;val&#xff09;的建立 重写toString方法 &#xff08;2&#xff09;构造方法 &#xff08;3&…

详解Mockito

详解Mockito 1. Mockito简介 在我们的编程世界中&#xff0c;测试是一个非常重要的环节&#xff0c;它能帮助我们确保代码的质量和稳定性。而在众多的测试方法中&#xff0c;Mock测试是一种非常有效的手段。 1.1 什么是 Mock 测试 Mock测试&#xff0c;顾名思义&#xff0c;…

夹耳式骨传导耳机怎么戴?有什么注意事项吗

骨传导耳机是靠震动我们的颅骨来播放声音的耳机&#xff0c;它的厉害之处在于不用塞进耳朵里&#xff0c;所以不会让耳朵感到堵塞。这意味着在运动、听歌、打电话等各种活动的时候&#xff0c;它们可以提供一个非常特别的体验。而骨传导耳机里有一种类别叫做夹耳式骨传导耳机&a…

2024初学编曲免费软件FL Studio21.2.2

FL Studio在业内也被称作“水果”软件&#xff0c;这是一款功能强大、简单易上手的专业编曲软件。软件中的音效插件库拥有超过25种音效插件&#xff0c;能够帮助激发我们的创作灵感。而FL Studio中文还推出了训练营课程&#xff0c;初学者可以在训练营中进行编曲知识的学习&…

Java多线程--线程的生命周期

文章目录 一、JDK1.5之前&#xff1a;5种状态五种状态1、新建2、就绪3、运行4、阻塞5、死亡 二、JDK1.5及之后&#xff1a;六种状态 Java语言使用 Thread类及其子类的对象来表示 线程&#xff0c;在它的一个完整的生命周期中通常要经历如下一些状态。 一、JDK1.5之前&#xf…

【Java面试】Mysql

目录 sql的执行顺序索引的优点和缺点怎么避免索引失效(也属于sql优化的一种)一条sql查询非常慢&#xff0c;我们怎么去排查和优化&#xff1f;存储引擎 MylSAM和InnoDB、Memory的区别事务的四大特性(ACID)脏读、不可重复读、幻读事务的隔离级别&#xff1f;怎么优化数据库SQL优…

Java中SimpleDateFormat时YYYY与yyyy以及HH和hh的区别注意踩坑

场景 Java开发手册中为什么要求SimpleDateFormat时用y表示年&#xff0c;而不能用Y&#xff1a; Java开发手册中为什么要求SimpleDateFormat时用y表示年&#xff0c;而不能用Y_simpledateformat 怎么确定y就是年-CSDN博客 在使用SimpleDateFormat在获取当前日期时因使用了YY…

【DDD】学习笔记-软件开发团队的沟通与协作

领域驱动设计的核心是“领域”&#xff0c;因此要运用领域驱动设计&#xff0c;从一开始就要让团队走到正确的点儿上。当我们组建好了团队之后&#xff0c;应该从哪里开始&#xff1f;不是 UI 原型设计、不是架构设计、也不是设计数据库&#xff0c;这些事情虽然重要但却非最高…

STM32F1之RTC实时时钟(Unix时间戳)

目录 1. Unix时间戳 2. UTC/GMT 3. 时间戳转换 3.1 time_t 3.2 struct tm 3.3 char * 3.4 时间戳的使用 实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器&#xff0c;在相应软件配置下&#xff0c;可提供时钟日历的功能。修改计数器的值可以重新设置…

leetcode hot100 组合总和Ⅲ

本题中&#xff0c;要求我们求在1-9范围内&#xff0c;满足k个数的和为n的组合&#xff08;组合是无序的&#xff0c;并且题目中要求不可以重复&#xff09;。 这种组合问题依旧需要用回溯算法来解决。因为我们没办法控制产生k层for循环。回溯算法的过程是构建树结构&#xff…