一文搞懂:两个日期的时间间隔

简介: 一文搞懂:两个日期的时间间隔

"

///

/// 返回两个日期之间的时间间隔(y:年份间隔、M:月份间隔、【d:天数间隔、h:小时间隔、m:分钟间隔、s:秒钟间隔、ms:微秒间隔,中括号内前加t,表示总数,如td,总天数】)

///

///

间隔标志

///

开始日期

///

结束日期

/// 返回间隔标志指定的时间间隔

public static double DateDiff(string Interval, System.DateTime? Date1, //代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg2MzQ2OA==.html

System.DateTime? Date2)

{

double dblYearLen = 365;//年的长度,365天

double dblMonthLen = (365 / 12);//每个月平均的天数

System.TimeSpan objT;

DateTime d1 = new DateTime();

DateTime d2 = new DateTime();

if (Date1 == null) return 0;

if (Date2 == null) return 0;

d1 = (DateTime)Date1;

d2 = (DateTime)Date2;

objT = d2.Subtract(d1);

switch (Interval)

{

case ""y""://返回日期的年份间隔

return (double)System.Convert.ToInt32(objT.Days / dblYearLen);

case ""M""://返回日期的月份间隔

return (double)System.Convert.ToInt32(objT.Days / dblMonthLen);

case ""d""://返回日期的天数间隔

objT = Convert.ToDateTime(d2.ToShortDateString()).Subtract(Convert.ToDateTime(d1.ToShortDateString()));

return (double)objT.Days;

case ""h""://返回日期的小时间隔

return (double)objT.Hours;

case ""m""://返回日期的分钟间隔

return (double)objT.Minutes;

case ""s""://返回日期的秒钟间隔

return (double)objT.Seconds;

case ""ms""://返回时间的微秒间隔

return (double)objT.Milliseconds;

//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDQwNzE2MA==.html

case ""td""://总天

return objT.TotalDays;

case ""th""://总小时数

return objT.TotalHours;

case ""tm""://总分钟

return objT.TotalMinutes;

case ""ts""://总秒

return objT.TotalSeconds;

case ""tms""://总毫秒

return objT.TotalMilliseconds;

default:

break;

}

return 0;

}


"
image.png
相关文章
|
6月前
|
C#
C# 版本的 计时器类 精确到微秒 秒后保留一位小数 支持年月日时分秒带单位的输出
这篇2010年的文章是从别处搬运过来的,主要包含一个C#类`TimeCount`,该类有多个方法用于处理时间相关的计算。例如,`GetMaxYearCount`计算以毫秒为单位的最大年数,`GetCurrentTimeByMiliSec`将当前时间转换为毫秒,还有`SecondsToYYMMDDhhmmss`将秒数转换为年月日时分秒的字符串。此外,类中还包括一些辅助方法,如处理小数点后保留一位数字的`RemainOneFigureAfterDot`。
|
6月前
|
存储 JavaScript 前端开发
vue3获取本地的当前时间转化为年月日显示然后计算之后一周的时间
vue3获取本地的当前时间转化为年月日显示然后计算之后一周的时间
|
6月前
|
程序员
程序员必知:将时间的秒数转化为分钟数
程序员必知:将时间的秒数转化为分钟数
102 0
|
7月前
|
弹性计算 运维 Shell
解析日期和时间
【4月更文挑战第29天】
48 1
|
7月前
【qt】一次性讲清楚日期和时间1
【qt】一次性讲清楚日期和时间
107 0
|
小程序 JavaScript API
小程序获取当前日期和时间点的方法
小程序获取当前日期和时间点的方法
200 0
|
C语言 C++
C++ 如果设置日期 & 时间基础篇
C++ 如果设置日期 & 时间基础篇
|
存储 Java 程序员
实战:求年月日时间前后遇到的坑和解决方式
这周接到一个时间转换任务需要处理,本来没什么问题,后来完成后发现时间有偏差,又重写了一遍代码,感觉很有记录必要性,希望看过的小伙伴可以避坑。
实战:求年月日时间前后遇到的坑和解决方式
|
JavaScript 前端开发
javascript时间函数的运用:根据开始时间和时间差来计算截至时间的解决方案
javascript时间函数的运用:根据开始时间和时间差来计算截至时间的解决方案
110 0
|
存储 算法 Unix
C++ 日期和时间编程总结
在 C++11 之前,C++ 编程只能使用 C-style 日期时间库,其精度只有秒级别,这对于有高精度要求的程序来说,是不够的。但这个问题在C++11 中得到了解决,C++11 中不仅扩展了对于精度的要求,也为不同系统的时间要求提供了支持。另一方面,对于只能使用 C-style 日期时间库的程序来说,C++17 中也增加了 timespec 将精度提升到了纳秒级别。
374 1