C#关于TimeSpan结构的使用和获取两个时间差

C#中的TimeSpan结构可以获取两个时间的时间差。

它主要具有以下属性和方法:

属性:

  • Days:获取时间间隔的天数部分。
  • Hours:获取时间间隔的小时数部分(不包括整天的小时数)。
  • Minutes:获取时间间隔的分钟数部分(不包括整小时的分钟数)。
  • Seconds:获取时间间隔的秒数部分(不包括整分钟的秒数)。
  • Milliseconds:获取时间间隔的毫秒数部分(不包括整秒的毫秒数)。
  • Ticks:获取时间间隔的刻度数,每刻度等于一百纳秒。
  • TotalDays:获取时间间隔的总天数,包括天数、小时、分钟、秒和毫秒。
  • TotalHours:获取时间间隔的总小时数,包括小时、分钟、秒和毫秒。
  • TotalMinutes:获取时间间隔的总分钟数,包括分钟、秒和毫秒。
  • TotalSeconds:获取时间间隔的总秒数,包括秒和毫秒。

方法:

  • Add(TimeSpan):将指定的时间间隔添加到当前时间间隔。
  • Subtract(TimeSpan):从当前时间间隔减去指定的时间间隔。
  • Duration():获取时间间隔的绝对值。
  • Negate():将时间间隔的值更改为相反数。
  • ToString():将时间间隔转换为字符串表示形式。

例:

TimeSpan timeSpan = new TimeSpan(1, 2, 30, 45, 500);  // 1天、2小时、30分钟、45秒、500毫秒Console.WriteLine("Days: " + timeSpan.Days);  // 输出:1
Console.WriteLine("Hours: " + timeSpan.Hours);  // 输出:2
Console.WriteLine("Minutes: " + timeSpan.Minutes);  // 输出:30
Console.WriteLine("Seconds: " + timeSpan.Seconds);  // 输出:45
Console.WriteLine("Milliseconds: " + timeSpan.Milliseconds);  // 输出:500
Console.WriteLine("Ticks: " + timeSpan.Ticks);  // 输出:978455000000Console.WriteLine("TotalDays: " + timeSpan.TotalDays);  // 输出:1.10434027777778
Console.WriteLine("TotalHours: " + timeSpan.TotalHours);  // 输出:26.5041666666667
Console.WriteLine("TotalMinutes: " + timeSpan.TotalMinutes);  // 输出:1590.25
Console.WriteLine("TotalSeconds: " + timeSpan.TotalSeconds);  // 输出:95415.5TimeSpan negatedTimeSpan = timeSpan.Negate();
Console.WriteLine("Negated TimeSpan: " + negatedTimeSpan);  // 输出:-1.02:29:14.5000000TimeSpan absoluteTimeSpan = timeSpan.Duration();
Console.WriteLine("Absolute TimeSpan: " + absoluteTimeSpan);  // 输出:1.02:30:45.5000000TimeSpan addedTimeSpan = timeSpan.Add(new TimeSpan(0, 1, 15, 0, 0));
Console.WriteLine("Added TimeSpan: " + addedTimeSpan);  // 输出:1.03:45:45.5000000TimeSpan subtractedTimeSpan = timeSpan.Subtract(new TimeSpan(0, 0, 30, 15, 0));
Console.WriteLine("Subtracted TimeSpan: " + subtractedTimeSpan);  // 输出:1.02:00:30.5000000string timeSpanString = timeSpan.ToString();
Console.WriteLine("TimeSpan as string: " + timeSpanString);  // 输出:1.02:30:45.5000000

特别要理解Days、Hours、Minutes和Seconds和TotalHours、TotalMinutes和TotalSeconds等之间的差别。前者仅表示时间间隔的部分值(不包括更大的单位),而后者表示时间间隔的总值(包括更大的单位)。具体可以仔细看上面的例子加以分析。

假如我们要计算两个时间点的时间差,可以参考如下例子:

DateTime startTime = new DateTime(2023, 1, 1, 12, 0, 0);  // 开始时间
DateTime endTime = new DateTime(2023, 1, 2, 14, 30, 0);  // 结束时间TimeSpan timeDifference = endTime - startTime;int days = timeDifference.Days;  // 相差的天数
int hours = timeDifference.Hours;  // 相差的小时数
int minutes = timeDifference.Minutes;  // 相差的分钟数
int seconds = timeDifference.Seconds;  // 相差的秒数Console.WriteLine("相差的天数: " + days);
Console.WriteLine("相差的小时数: " + hours);
Console.WriteLine("相差的分钟数: " + minutes);
Console.WriteLine("相差的秒数: " + seconds);

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

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

相关文章

分类预测 | Matlab实现基于PSO-SDAE粒子群优化算法优化堆叠去噪自编码器的数据分类预测

分类预测 | Matlab实现基于PSO-SDAE粒子群优化算法优化堆叠去噪自编码器的数据分类预测 目录 分类预测 | Matlab实现基于PSO-SDAE粒子群优化算法优化堆叠去噪自编码器的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现基于PSO-SDAE粒子群优化算法…

使用树莓派学习Linux系统编程的 --- 库编程(面试重点)

在之前的Linux系统编程中,学习了文件的打开;关闭;读写;进程;线程等概念.... 本节补充“Linux库概念 & 相关编程”,这是一个面试的重点! 分文件编程 在之前的学习中,面对较大的…

算法---相等行列对

题目 给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid ,返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目。 如果行和列以相同的顺序包含相同的元素(即相等的数组),则认为二者是相等的。 示例 1: 输入&…

golang[ssa callgraph] 获取调用图实战

最近在拆分一个旧服务,需要从几十万行代码中,按业务功能拆分出对应代码,并部署新服务;然而,面对这种巨型服务,代码调用错综复杂,纯人力拆分需要耗费很多时间;基于此,这里…

MATLAB实战应用案例精讲(二)-【图像处理】图像分类(附MATLAB代码实现)

目录 知识储备 图像分类、检测,语义分割 (1) 图像分类常用数据集 (2) 图像分类经典网络结构

原理Redis-Dict字典

Dict 1) Dict组成2) Dict的扩容3) Dict的收缩4) Dict的rehash5) 总结 1) Dict组成 Redis是一个键值型(Key-Value Pair)的数据库,可以根据键实现快速的增删改查。而键与值的映射关系正是通过Dict来实现的。 Dict由三部分组成,分别…

无重复最长字符串(最长无重复子字符串),剑指offer,力扣

目录 原题: 力扣地址: 我们直接看题解吧: 解题方法: 难度分析: 难度算中下吧,这个总体不算很难,而且滑动窗口,以及哈希都比较常见 审题目事例提示: 解题思路(…

vue3 setup展示数据

效果图 1.创建数据 content.js import { reactive } from vueconst data reactive({color:red,title: 二十四节气,subTitle: 节气,是干支历中表示自然节律变化以及确立“十二月建”(月令)的特定节令。,list: [{name: "立春",con…

代码随想录-刷题第二天

977. 有序数组的平方 题目链接:977. 有序数组的平方 思路:双指针思想,数组是有序的且含有负数,其中元素的平方一定是两边最大。定义两个指针,从两端开始向中间靠近,每次比较两个指针的元素平方大小&#…

为什么创建百科词条?百科营销的作用

有些企业把百科营销看的很重,把企业、品牌、高管、产品等统统创建了几套百科词条,投资几万元。但也有的企业认为百科词条不带来流量,创建百度百科、360百科、头条百科或者维基百科等只是在做无用功,都没有什么价值,一个…

单元测试实战(二)Service 的测试

为鼓励单元测试,特分门别类示例各种组件的测试代码并进行解说,供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战(一)Controller 的测试 单元测试实战(二)Service 的测试 单元测试实战&#x…

电池管理系统设计与实现

目录 简介 1 、系统总体功能设计 2、 硬件设计 2.1 、硬件系统整体设计

Java 获取本地ip网卡信息

工具类 public static Optional<Inet4Address> getLocalIp4Address() throws SocketException {final List<Inet4Address> inet4Addresses getLocalIp4AddressFromNetworkInterface();if (inet4Addresses.size() ! 1) {final Optional<Inet4Address> ipBySo…

线上bug-接口速度慢

&#x1f47d;System.out.println(“&#x1f44b;&#x1f3fc;嗨&#xff0c;大家好&#xff0c;我是代码不会敲的小符&#xff0c;双非大四&#xff0c;Java实习中…”); &#x1f4da;System.out.println(“&#x1f388;如果文章中有错误的地方&#xff0c;恳请大家指正&a…

ClickHouse 物化视图

ClickHouse的物化视图是一种查询结果的持久化&#xff0c;它确实是给我们带来了查询效率的提升。用户查起来跟表没有区别&#xff0c;它就是一张表&#xff0c;它也像是一张时刻在预计算的表&#xff0c;创建的过程它是用了一个特殊引擎&#xff0c;加上后来 as select&#xf…

腾讯云助力港华能源上线“碳汭星云2.0”,推动能源行业绿色低碳转型

11月17日&#xff0c;港华能源与腾讯云联合打造的港华智慧能源生态平台“碳汭星云2.0”升级上线。依托双方的连接、大数据能力和行业深耕经验&#xff0c;该平台打破了园区“数据孤岛”&#xff0c;进一步提升了数据治理、应用集成和复制推广能力&#xff0c;未来有望以综合能源…

【小呆的力学笔记】有限元专题之循环对称结构有限元原理

文章目录 1. 循环对称问题的提出2. 循环对称条件2.1 节点位移的循环对称关系2.2 节点内力的循环对称关系 3. 在平衡方程中引入循环对称条件 1. 循环对称问题的提出 许多工程结构都是其中某一扇面的n次周向重复&#xff0c;也就是是周期循环对称结构。如果弹性体的几何形状、约…

【每日刷题——语音信号篇】

思考与练习 练习2.1 语音信号在产生的过程中&#xff0c;以及被感知的过程中&#xff0c;分别要经过人体的哪些器官&#xff1f; 1.产生过程&#xff1a; 肺部空气 → \rightarrow →冲击声带 → \rightarrow →通过声道&#xff08;可以调节&#xff09; → \rightarrow →…

IDEA自动注解设置(中文版)

IDEA自动注解设置 1、添加类自动注释 文件 - 设置 - 编辑器 - 文件和代码模板 - Include - File Header /** *description&#xff1a;TODO *author&#xff1a; ${USER} *create&#xff1a; ${DATE} ${TIME} */2、添加类方法自动注释 文件 - 设置 - 编辑器 - 实时模版 - …

沸点 | Ultipa 图数据库金融应用场景优秀案例首批入选,金融街论坛年会发布

为推进图数据库在金融行业的创新应用试点&#xff0c;近日&#xff0c;在2023金融街论坛年会“全球金融科技中心网络年会暨ZIBS北京论坛”上&#xff0c;北京前沿金融监管科技研究院发布了基于国际标准组织——国际关联数据基准委员会&#xff08;LDBC&#xff09;的《图数据库…