首页 > 其他分享 >计算两时间之前的差值时长,并转换成时分秒的字符串格式

计算两时间之前的差值时长,并转换成时分秒的字符串格式

时间:2024-01-18 10:59:20浏览次数:27  
标签:转换成 val overTime 差值 startTime sb dt 时分秒 Append

        /// <summary>
        /// 返回时间差的总时长,以*天*时*分*秒的格式
        /// </summary>
        /// <param name="startTime"></param>
        /// <param name="overTime"></param>
        /// <returns></returns>
        public static string ConvertDurationToStr(DateTime startTime, DateTime overTime)
        {
            var val = (long)(overTime - startTime).TotalMilliseconds;
            return DurationToStr(val);
        }

        /// <summary>
        /// 返回时间差的总时长,以*天*时*分*秒的格式
        /// </summary>
        /// <param name="startTime"></param>
        /// <param name="overTime"></param>
        /// <returns></returns>
        public static string ConvertDurationToStr(TimeSpan startTime, TimeSpan overTime)
        {
            var val = (long)(overTime - startTime).TotalMilliseconds;
            return DurationToStr(val);
        }

        /// <summary>
        /// 时长转化成字符串
        /// </summary>
        /// <param name="val"></param>
        /// <returns></returns>
        static string DurationToStr(long val)
        {
            var dt = new TimeSpan(val * 10000);
            StringBuilder sb = new StringBuilder();
            if (dt.Days > 0)
            {
                sb.Append($"{dt.Days}天");
            }
            if (dt.Hours > 0)
            {
                sb.Append($"{dt.Hours}时");
            }
            if (dt.Minutes > 0)
            {
                sb.Append($"{dt.Minutes}分");
            }
            if (dt.Seconds > 0)
            {
                sb.Append($"{dt.Seconds}秒");
            }
            if (dt.Milliseconds > 0)
            {
                sb.Append($"{dt.Milliseconds}毫秒");
            }
            return sb.ToString();
        }

 

标签:转换成,val,overTime,差值,startTime,sb,dt,时分秒,Append
From: https://www.cnblogs.com/xuling-297769461/p/17972017

相关文章

  • 如何把将字符串中的数字转换成数字
    主要采用的是库函数的方法,isdigit,stoi.isdigit可以判断单个字符是否是数字,stoi可以将多个字符(多位数,复数)转换成数字。判断数字可以结合isdigit给出对应的函数。点击查看代码boolisNumber(conststd::string&token){//Checkifthetokenisanumber(posit......
  • Oracle怎样写一个sql,将一个不同的表结构的数据迁移到另一个表中,其中有字段需要有映射
    要将一个表的数据迁移到另一个表,并且需要进行字段映射和值转换,可以使用以下步骤:创建目标表:CREATETABLE目标表名(目标字段1数据类型,目标字段2数据类型,...);插入数据并进行字段映射和值转换:INSERTINTO目标表名(目标字段1,目标字段2,...)SELECTCASEWH......
  • liunx命令word文档和excel表格转换成pdf
    1、 AnolisOS-8.x和centos7.x系统安装libreoffice#直接使用yum安装yuminstall-ylibreoffice#验证libreoffice--versionLibreOffice7.1.8.110(Build:1)#后台启动libreoffice服务nohuplibreoffice--headless--accept="socket,host=127.0.0.1,port=8100;urp;"--n......
  • 随机生成每个日期的时分秒,同天的累计,略过12-14点
    <?php//洛杉矶时区date_default_timezone_set('America/Los_Angeles');$date_arr=['2023-11-10','2023-11-10','2023-11-10','2023-11-11','2023-11-11','2023-11-12�......
  • 实现DLT645 698电表数据转换成modbus协议的解决方案
    1 项目背景在一些能源监控项目或者抄表项目中,需要实时采集电能表的数据进行电量分析和远程监控。但是在一些场合,现场的电表是645的电力规约,这些规约还分成1997和2007两个版本。而监控中心的通信协议一般使用工业modbus通信。645协议远比modbus要复杂的多,需要多帧数据的通信才能完......
  • 十进制数转换成十六进制
    将一个十进制数转换成十六进制数可以按以下步骤进行: 1.将该十进制数不断除以16,得到的余数即为对应位的十六进制数,直至该数小于16为止;、2.将得到的所有余数倒序排列,即为该十进制数对应的十六进制数。 下面以一个例子来说明如何将十进制数转换成十六进制数: 将十进制数326转换成......
  • a-date-picker设置禁用以前的时间(含时分秒)
     <a-date-pickerv-model="selectTime"show-timeformat="YYYY/MM/DDHH:mm:ss"valueFormat="YYYY-MM-DDHH:mm:ss":disabled-date="disabledDate":disabled-time="disabledTime"placeholder......
  • 图片转换成base64格式的优缺点
    前言什么是base64?Base64,顾名思义,就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"+“、”/“一共64个字符的字符集,(另加一个“=”,实际是65个字符,至于为什么还会有一个“=”,这个后面再说)。任何符号都可以转换成这个字符集中的字符,这个转换过程就叫做base64编码。图片转换成base6......
  • 使用WinSW将jar创建成Windows服务;使用Microsoft.Extensions.Hosting.WindowsServices
    【背景】我们有几个历史产品,需要部署在Windows系统上,产品有jar包,也有.net工程,为了优美的启动服务,思考了两种处理方式。第一种是电脑开机启动,将启动命令设置为快捷键,并将快捷键拷贝到C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup目录下,该方式有个缺点,由于ja......
  • 使用网关采集modbus设备数据转换成profinet协议的方案
    1 方案描述这个方案是使用vfbox网关采集modbus设备的数据,然后转换成profinet协议发送给平台。这种转换方法只需要简单的配置网关参数,不需要进行软件编程,很方便的就把modbus数据转换成了profinet协议。在电脑上通过软件配置网关参数,告诉网关要采集的数据的寄存器地址,然后在配置一下......