主页 > 软件教程

C#计算两个日期之间的间隔源代码

软件教程 2024-01-14

在网站开发过程中,常常要计算两个日期之间的间隔,有时需要返回相差几天,有时又需要返回相差几小时等,以下源码返回了从年到微秒的不同值,满足各种需要。

实现的基本思想:使用 TimeSpan 类的 Subtract 方法计算出两个日期的时差,再根据时间间隔标志 flag 返回具体的时差,如果 flag 不符合方法中的任何一个值,则返回0。

 

/// <summary>
/// 计算两个日期之间的间隔
/// </summary>
/// <param name="dt1">日期1</param>
/// <param name="dt2">日期2</param>
/// <param name="flag">间隔标志,如 h、m、s 分别表示时、分、秒</param>
/// <returns>两个日期之间的间隔</returns>
private int TimeDiff(DateTime dt1, DateTime dt2, string flag)
{
double yearLen = 365;//年的长度,365天
double monthLen = (365 / 12);//每个月平均的天数

TimeSpan ts1 = new TimeSpan(dt1.Ticks);
TimeSpan ts2 = new TimeSpan(dt2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();

switch (flag)
{
case "y"://返回两个日期的年份间隔
return Convert.ToInt32(ts.Days / yearLen);
case "M"://返回两个日期的月份间隔
return Convert.ToInt32(ts.Days / monthLen);
case "d"://返回两个日期的天数间隔
return ts.Days;
case "h"://返回两个日期的小时间隔
return ts.Hours;
case "m"://返回两个日期的分钟间隔
return ts.Minutes;
case "s"://返回两个日期的秒钟间隔
return ts.Seconds;
case "ms"://返回两个的时间的微秒间隔
return ts.Milliseconds;
default:
return 0;
}
}

只需把此方法复制到公共类中,直接调用即可,十分方便,调用方法:

TimeDiff(DateTime.Now, "2020-9-3", "h")


标签: C#计算两个日期之间的间隔

电脑软硬件教程网 Copyright © 2016-2030 www.computer26.com. Some Rights Reserved.