C# 之DateDiff 时间差扩展方法
序言:
在对分析数据进行统计时,又一次遇到需要计算时间差值的问题,所以特在此记录。该方法和SQL Server中的DateDiff方法类似,主要根据传入的时间格式,开始时间,结束时间,来返回需要的时间差。
//时间格式枚举 public enum DateInterval { Second, Minute, Hour, Day, Week, Month, Quarter, Year } public sealed class DateTimeExtension { public DateTimeExtension() { } /* interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔 Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。 Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。 firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。 */ public static long DateDiff(DateInterval Interval, System.DateTime StartDate, System.DateTime EndDate) { long lngDateDiffValue = 0; System.TimeSpan TS = new System.TimeSpan(EndDate.Ticks - StartDate.Ticks); switch (Interval) { case DateInterval.Second: lngDateDiffValue = (long)TS.TotalSeconds; break; case DateInterval.Minute: lngDateDiffValue = (long)TS.TotalMinutes; break; case DateInterval.Hour: lngDateDiffValue = (long)TS.TotalHours; break; case DateInterval.Day: lngDateDiffValue = (long)TS.Days; break; case DateInterval.Week: lngDateDiffValue = (long)(TS.Days / 7); break; case DateInterval.Month: lngDateDiffValue = (long)(TS.Days / 30); break; case DateInterval.Quarter: lngDateDiffValue = (long)((TS.Days / 30) / 3); break; case DateInterval.Year: lngDateDiffValue = (long)(TS.Days / 365); break; } return (lngDateDiffValue); }//end of DateDiff }
分类:
.net 基础篇
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!