TimeSpan用法详解

TimeSpan用法详解1 DateTime 值类型代表了一个从公元 0001 年 1 月 1 日 0 点 0 分 0 秒到公元 9999 年 12 月 31 日 23 点 59 分 59 秒之间的具体日期时刻 因此 你可以用 DateTime 值类型来描述任何在想象范围之内的时间 一个 DateTime 值代表了一个具体的时刻 2 TimeSpan 值包含了许多属性与方法 用于访问或处理一个 TimeSpan 值下面的列表涵盖了其中的一部分 Add 与另一个 TimeSpa

TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0

TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.

public string DateStringFromNow(DateTime dt) { TimeSpan span = DateTime.Now - dt; if (span.TotalDays > 60) { return dt.ToShortDateString(); } else if ( span.TotalDays > 30 ) { return "1个月前"; } else if (span.TotalDays > 14) { return "2周前"; } else if (span.TotalDays > 7) { return "1周前"; } else if (span.TotalDays > 1) { return string.Format("{0}天前", (int)Math.Floor(span.TotalDays)); } else if (span.TotalHours > 1) { return string.Format("{0}小时前", (int)Math.Floor(span.TotalHours)); } else if (span.TotalMinutes > 1) { return string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes)); } else if (span.TotalSeconds >= 1) { return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds)); } else { return "1秒前"; } }



C#中使用TimeSpan计算两个时间的差值

可以反加两个日期之间任何一个时间单位。

private string DateDiff(DateTime DateTime1, DateTime DateTime2) {string dateDiff = null; TimeSpan ts1 = new TimeSpan(DateTime1.Ticks); TimeSpan ts2 = new TimeSpan(DateTime2.Ticks); TimeSpan ts = ts1.Subtract(ts2).Duration(); dateDiff = ts.Days.ToString()+"天"+ ts.Hours.ToString()+"小时"+ ts.Minutes.ToString()+"分钟"+ ts.Seconds.ToString()+"秒"; return dateDiff; } TimeSpan ts = Date1 - Date2; double dDays = ts.TotalDays;//带小数的天数,比如1天12小时结果就是1.5 int nDays = ts.Days;//整数天数,1天12小时或者1天20小时结果都是1 

/// <summary> /// 日期比较 /// </summary> /// <param name="today">当前日期</param> /// <param name="writeDate">输入日期</param> /// <param name="n">比较天数</param> /// <returns>大于天数返回true,小于返回false</returns> private bool CompareDate(string today, string writeDate, int n) { DateTime Today = Convert.ToDateTime(today); DateTime WriteDate = Convert.ToDateTime(writeDate); WriteDate = WriteDate.AddDays(n); if (Today >= WriteDate) return false; else return true; }

 

示例代码:

<table width="100%" border="1" cellspacing="0" cellpadding="0"> <tr> <td>TimeSpan('T','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('T','2002-10-1','2002-1-1')" --></td> </tr> <tr> <td>TimeSpan('d','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('d','2002-10-1','2002-1-1')" --></td> </tr> <tr> <td>TimeSpan('h','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('h','2002-10-1','2002-1-1')" --></td> </tr> <tr> <td>TimeSpan('u','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('u','2002-10-1','2002-1-1')" --></td> </tr> <tr> <td>TimeSpan('m','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('m','2002-10-1','2002-1-1')" --></td> </tr> <tr> <td>TimeSpan('s','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('s','2002-10-1','2002-1-1')" --></td> </tr> <tr> <td>TimeSpan('D','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('D','2002-10-1','2002-1-1')" --></td> </tr> <tr> <td>TimeSpan('H','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('H','2002-10-1','2002-1-1')" MaxChar="" DChar="" Safety="False" --></td> </tr> <tr> <td>TimeSpan('U','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('U','2002-10-1','2002-1-1')" MaxChar="" DChar="" Safety="False" --></td> </tr> <tr> <td>TimeSpan('M','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('M','2002-10-1','2002-1-1')" MaxChar="" DChar="" Safety="False" --></td> </tr> <tr> <td>TimeSpan('S','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('S','2002-10-1','2002-1-1')" MaxChar="" DChar="" Safety="False" --></td> </tr> <tr> <td>TimeSpan('相差d天h小时','2002-10-1','2002-1-1')</td> <td> <!-- NoahValue ValueName="TimeSpan('相差d天h小时','2002-10-1','2002-1-1')" MaxChar="" DChar="" Safety="False" --></td> </tr> </table>










版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233688.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月29日 下午1:01
下一篇 2025年6月29日 下午1:22


相关推荐

  • 💡小白必看!手把手教你玩转Cursor,提问技巧全在这儿了!

    💡小白必看!手把手教你玩转Cursor,提问技巧全在这儿了!

    2026年3月16日
    2
  • C# 登陆验证码工具类VerifyCode

    C# 登陆验证码工具类VerifyCodeusingSystem;usingSystem.Collections.Generic;usingSystem.Drawing;usingSystem.Drawing.Imaging;usingSystem.IO;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;…

    2022年7月15日
    19
  • js网页打印

    js网页打印Javascript 网页打印大全普通打印 整页打 nbsp nbsp nbsp nbsp nbsp 打印网页内部分内容 自定义 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 打印去掉 添加页眉页脚 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 使用外部控件 方法实现多功能打印 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 打印背景以上为代码控制设置 页面设置 实现打印参数设置 Window 系统图文版 一 普通打印 整页打 这个不用多说 直接用 nbsp 引用 window print

    2026年3月26日
    2
  • Jenkins安装_jenkins安装与配置

    Jenkins安装_jenkins安装与配置前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

    2022年7月30日
    8
  • oracle数据库用户密码过期后怎么修改_oracle数据库密码过期怎么修改

    oracle数据库用户密码过期后怎么修改_oracle数据库密码过期怎么修改问题现象:今天在更改数据库数据的时候,程序报错了,如下:ORA-28001:thepasswordhasexpired问题分析:很显然,报错原因就是:密码已过期!所以现在需要做的事情只有两件:1.修改密码的过期时间2.修改/重置密码这里分析一下为什么要这样做:1.修改密码的过期时间:这是因为OracleDatabase11g版本的Oracle数据库有一项默认配置,就是密码过期时间默认为180天(6个月左右);通过sysdba身份可以登录..

    2022年7月28日
    21
  • mysql 导入 csv 大文件怎么打开_mysql导入超大内存的csv文件

    mysql 导入 csv 大文件怎么打开_mysql导入超大内存的csv文件1.直接用命令2.用分割器分割,再用导入最后要commit,不然没有真的导入数据库中。其中出现的问题:TheMySQLserverisrunningwiththe–secure-file-privoptionsoitcannotexecutethisstatement解决方法:【我的做法】【必须SQL文件和数据表都要在指定目录中】指定路径查询:showvariabl…

    2022年7月21日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号