C#开发——时间间隔类TimSpan
TimeSpan 是 C# 中的一个结构( struct ),用于表示时间间隔或持续时间。它位于 System 命名空间中,是处理时间相关操作时非常重要的工具,尤其是在计算两个日期或时间之间的差值、表示时间段或执行时间相关的运算时。
一、TimeSpan 的主要用途
TimeSpan 可以表示从负数到正数的时间间隔,范围从 -10675199 天、2 小时、48 分钟和 5.4775808 秒 到 10675199 天、2 小时、48 分钟和 5.4775807 秒 。它通常用于以下场景:
- 计算两个日期或时间的差值:通过减法运算符或 TimeSpan 构造函数。
- 表示持续时间:例如,任务的执行时间、事件的持续时间等。
- 时间的加减运算:与 DateTime 结合使用,对日期或时间进行加减操作。
二、TimeSpan 的构造和初始化
TimeSpan 提供了多种构造方式,用于创建表示时间间隔的对象。
1、常用的构造函数:
// 通过天、小时、分钟、秒来构造 TimeSpan
TimeSpan ts1 = new TimeSpan(1, 2, 30, 45); // 表示 1 天 2 小时 30 分钟 45 秒// 通过总秒数构造 TimeSpan
TimeSpan ts2 = TimeSpan.FromSeconds(3600); // 表示 1 小时// 通过总分钟数构造 TimeSpan
TimeSpan ts3 = TimeSpan.FromMinutes(90); // 表示 1 小时 30 分钟// 通过总天数构造 TimeSpan
TimeSpan ts4 = TimeSpan.FromDays(1.5); // 表示 1 天 12 小时
2、从字符串中解析:
TimeSpan ts5 = TimeSpan.Parse("01:02:30"); // 表示 1 小时 2 分钟 30 秒
TimeSpan ts6 = TimeSpan.ParseExact("01:02:30", @"hh\:mm\:ss", null); // 使用自定义格式解析
三、TimeSpan 的属性
TimeSpan 提供了一些只读属性,用于获取时间间隔的各个组成部分:
- Days :时间间隔中的天数部分。
- Hours :时间间隔中的小时部分。
- Minutes :时间间隔中的分钟部分。
- Seconds :时间间隔中的秒部分。
- Milliseconds :时间间隔中的毫秒部分。
- Ticks :时间间隔的刻度(1 tick = 100 纳秒)。
- TotalDays :时间间隔的总天数(包括小数部分)。
- TotalHours :时间间隔的总小时数(包括小数部分)。
- TotalMinutes :时间间隔的总分钟数(包括小数部分)。
- TotalSeconds :时间间隔的总秒数(包括小数部分)。
实例代码:
TimeSpan ts = new TimeSpan(1, 2, 30, 45);
//输出时间间隔的天数、小时、分钟、秒
Console.WriteLine($"Days: {ts.Days}, Hours: {ts.Hours}, Minutes: {ts.Minutes}, Seconds: {ts.Seconds}");
//输出时间间隔的总秒数
Console.WriteLine($"Total Seconds: {ts.TotalSeconds}");
四、TimeSpan 的运算
TimeSpan 支持加法、减法和比较运算,可以方便地进行时间间隔的计算:
1、加法和减法
TimeSpan ts1 = new TimeSpan(1, 0, 0); // 1 天
TimeSpan ts2 = new TimeSpan(0, 2, 0); // 2 小时
TimeSpan result = ts1 + ts2; // 结果为 1 天 2 小时
TimeSpan difference = ts1 - ts2; // 结果为 0 天 22 小时
2、比较
TimeSpan ts1 = new TimeSpan(1, 0, 0);
TimeSpan ts2 = new TimeSpan(0, 24, 0);if (ts1 == ts2)
{Console.WriteLine("ts1 和 ts2 相等");
}
else
{Console.WriteLine("ts1 和 ts2 不相等");
}
五、TimeSpan 与 DateTime 的结合
TimeSpan 常常与 DateTime 结合使用,用于对日期或时间进行加减操作:
DateTime now = DateTime.Now;
TimeSpan duration = new TimeSpan(1, 2, 30, 0); // 1 天 2 小时 30 分钟
DateTime future = now + duration; // 当前时间加上时间间隔
DateTime past = now - duration; // 当前时间减去时间间隔
六、TimeSpan 的格式化
TimeSpan 提供了多种格式化选项,用于将时间间隔转换为字符串:
标准格式化
TimeSpan ts = new TimeSpan(1, 2, 30, 45);
Console.WriteLine(ts.ToString()); // 输出:1.02:30:45
Console.WriteLine(ts.ToString("g")); // 输出:1.02:30:45(通用格式)
Console.WriteLine(ts.ToString("c")); // 输出:1.02:30:45.0000000(完整格式)
自定义格式化
Console.WriteLine(ts.ToString(@"dd\.hh\:mm\:ss")); // 输出:01.02:30:45
Console.WriteLine(ts.ToString(@"hh\:mm\:ss")); // 输出:02:30:45
七、总结
TimeSpan 是 C# 中用于表示时间间隔的结构,具有以下特点:
- 提供多种构造方式,支持从天、小时、分钟、秒或总秒数等初始化。
- 提供丰富的属性,用于获取时间间隔的各个组成部分。
- 支持加法、减法和比较运算,方便进行时间间隔的计算。
- 可以与 DateTime 结合使用,对日期或时间进行加减操作。
- 提供多种格式化选项,方便将时间间隔转换为字符串。
通过合理使用 TimeSpan ,可以方便地处理时间相关的计算和操作,是 C# 中处理时间问题的重要工具之一。
相关文章:
C#开发——时间间隔类TimSpan
TimeSpan 是 C# 中的一个结构( struct ),用于表示时间间隔或持续时间。它位于 System 命名空间中,是处理时间相关操作时非常重要的工具,尤其是在计算两个日期或时间之间的差值、表示时间段或执行时间相关的运算…...

NModbus 连接到Modbus服务器(Modbus TCP)
1、在项目中通过NuGet添加NModbus,在界面中添加一个Button。 using NModbus.Device; using NModbus; using System.Net.Sockets; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Docu…...

蓝桥杯 之 图形规律
文章目录 分析组成,找到规律数正方形 在蓝桥杯中,常常会有一些图形的规律的题目需要我们去解决,所以我们需要学会其中的一些方法,我们这样才能解决对应的问题 方法1:直接对n进行拆分方法2:使用递归的思路&a…...
多线程学习之路
多线程的创建方式主要有以下几种: 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法来创建线程。 class MyThread extends Thread {Overridepublic void run() {// 线程执行的任务System.out.println("Thread is running");} }public class Mai…...

英码科技携昇腾DeepSeek大模型一体机亮相第三届北京人工智能产业创新发展大会
2025年2月28日,第三届北京人工智能产业创新发展大会在国家会议中心隆重开幕。本届大会以"好用、易用、愿用——以突破性创新加速AI赋能千行百业”为主题,重点展示人工智能技术创新成果与产业化应用实践。作为昇腾生态的APN伙伴,英码科技…...
【AI】如何理解与应对AI中的敏感话题:详细分析与实用指南
引言 随着人工智能(AI)技术的不断发展,我们在与AI交互时,可能会遇到敏感话题的讨论限制。在许多情况下,AI系统为了避免触及社会、政治或文化敏感点,会对用户输入进行一定的筛选和过滤。那么,这…...

(十 三)趣学设计模式 之 模版方法模式!
目录 一、 啥是模板方法模式?二、 为什么要用模板方法模式?三、 模板方法模式的实现方式四、 模板方法模式的优缺点五、 模板方法模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式&a…...

20250225-代码笔记03-class CVRPModel AND other class
文章目录 前言一、class CVRPModel(nn.Module):__init__(self, **model_params)函数功能函数代码 二、class CVRPModel(nn.Module):pre_forward(self, reset_state)函数功能函数代码 三、class CVRPModel(nn.Module):forward(self, state)函数功能函数代码 四、def _get_encodi…...

【postman】postman找回接口数据
项目提测,一打开postman天塌了,所有接口都不见了。。。。conllection目录也看不见了,也导入不了同事给我发的json文件。 然后重新找同事要了一个安装包,覆盖安装了之后,在下面的目录里面找到了备份文件【C:\Users\yan…...

Milvus向量数据库部署
一、什么是Milvus Milvus 是一款开源的向量数据库,旨在帮助开发者轻松管理和检索大规模向量数据。它通过高效的索引技术,支持快速的相似度搜索,使得从海量数据中查找最接近的匹配变得简单而快捷。无论是构建推荐系统、进行图像识别还是分析自…...

显式 GC 的使用:留与去,如何选择?
目录 一、什么是显式 GC? (一) 垃圾回收的基本原理 (二)显式 GC 方法和行为 1. System.gc() 方法 2. 显式 GC 的行为 (三)显式 GC 的使用场景与风险 1. JVM 如何处理显式 GC 2. 显式 GC…...

探秘基带算法:从原理到5G时代的通信变革【二】Viterbi解码
文章目录 二、关键算法原理剖析2.1 Viterbi 解码2.1.1 卷积码与网格图基础**卷积码****网格图****生成多项式****理想情况下解码过程** 2.1.2 Viterbi 算法核心思想2.1.3 路径度量与状态转移机制2.1.4 算法流程与关键步骤详解2.1.5 译码算法举例与复杂度分析2.1.6 算法代码示例…...

从零实现高并发内存池
目录 一、项目介绍 二、什么是内存池? 1.池化技术 2.内存池 3.内存池解决的问题 三、malloc本身就是内存池 四、定长内存池 五、高并发内存池整体框架 六、thread cache 七、central cache 八、page cache 一、项目介绍 当前项目是实现一个高并发的内存池…...
3-7 WPS JS宏 工作表移动复制实例-2(多工作簿的多工作表合并)学习笔记
************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...

【计算机网络】考研复试高频知识点总结
文章目录 一、基础概念1、计算机⽹络的定义2、计算机⽹络的目标3、计算机⽹络的组成4、计算机⽹络的分类5、计算机⽹络的拓扑结构6、计算机⽹络的协议7、计算机⽹络的分层结构8、OSI 参考模型9、TCP/IP 参考模型10、五层协议体系结构 二、物理层1、物理层的功能2、传输媒体3、 …...

IDEA Tab 页设置多行显示
前言 日常编码中,经常需要在编辑器中同时打开多个文件,而在 IDEA 中,默认情况下,顶部的 Tab 页只显示一行,多余的文件会被隐藏起来,如下图所示: IDEA 默认 Tab 页只显示一行 这种情况下&#…...
Spark核心之02:常用算子详解
1、RDD操作详解 # 启动spark-shell spark-shell --master local[2] 1.1 基本转换 1) map map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。 举例: scala> val a sc.parallelize(1 …...

Redis---LRU原理与算法实现
文章目录 LRU概念理解LRU原理基于HashMap和双向链表实现LRURedis中的LRU的实现LRU时钟淘汰策略近似LRU的实现LRU算法的优化 Redis LRU的核心代码逻辑Redis LRU的核心代码逻辑Redis LRU的配置参数Redis LRU的优缺点Redis LRU的优缺点 LRU概念理解 LRU(Least Recentl…...

matlab 包围盒中心匹配法实现点云粗配准
目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示1、初始位置2、配准结果本文由CSDN点云侠原创,原文链接,首发于:20255年3月3日。 一、算法原理 1、原理概述 包围盒中心匹配法是将源点云 P P P...

Mermaid语法介绍
一、基础语法 图表声明 使用 graph TD(自上而下)或 graph LR(从左到右)定义图表方向,节点间用箭头连接。例如: #mermaid-svg-WLayaaK0Ui6cKr5Z {font-family:"trebuchet ms",verdana,arial,sans…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...

Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...