社区
C#
帖子详情
请问在C#中如何返回两个日期相差的天数或月数?
my98800
2005-06-17 08:35:25
请问在C#中如何返回两个日期相差的天数或月数?
...全文
3015
11
打赏
收藏
请问在C#中如何返回两个日期相差的天数或月数?
请问在C#中如何返回两个日期相差的天数或月数?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
singlepine
2005-06-20
打赏
举报
回复
private double DateDiff(string howtocompare, System.DateTime startDate, System.DateTime endDate)
{
double diff=0;
System.TimeSpan TS = new System.TimeSpan(endDate.Ticks-startDate.Ticks);
switch (howtocompare.ToLower())
{
case "year":
diff = Convert.ToDouble(TS.TotalDays/365);
break;
case "month":
diff = Convert.ToDouble((TS.TotalDays/365)*12);
break;
case "day":
diff = Convert.ToDouble(TS.TotalDays);
break;
case "hour":
diff = Convert.ToDouble(TS.TotalHours);
break;
case "minute":
diff = Convert.ToDouble(TS.TotalMinutes);
break;
case "second":
diff = Convert.ToDouble(TS.TotalSeconds);
break;
}
return diff;
}
烤火的鱼
2005-06-20
打赏
举报
回复
月数很简单,日期的年数×12+月数,两个都这么计算了再相减就可以了,如果计算工龄还要加1个月,道理也很简单,第一个月要算工龄的
silverseven7
2005-06-20
打赏
举报
回复
dateTime1 = DateTime.Now;
...
TimeSpan ts = dateTime1 - dateTime2;
Console.WriteLine("天数" + ts.Days);
月数在做除法,30天还是31天随便
dateTime1 = DateTime.Now;
...
TimeSpan ts = dateTime1 - dateTime2;
Console.WriteLine("天数" + ts.Days);
月数在做除法,30天还是31天随便
dateTime1 = DateTime.Now;
...
TimeSpan ts = dateTime1 - dateTime2;
Console.WriteLine("天数" + ts.Days);
月数在做除法,30天还是31天随便
dateTime1 = DateTime.Now;
...
TimeSpan ts = dateTime1 - dateTime2;
Console.WriteLine("天数" + ts.Days);
月数在做除法,30天还是31天随便
dateTime1 = DateTime.Now;
...
TimeSpan ts = dateTime1 - dateTime2;
Console.WriteLine("天数" + ts.Days);
月数在做除法,30天还是31天随便
juluan
2005-06-20
打赏
举报
回复
以上是我自己寫的,大家看看能用不~~ 嘿嘿
juluan
2005-06-20
打赏
举报
回复
/// <summary>
/// 得到2個日期的指定格式間隔
/// </summary>
/// <param name="dt1">日期1</param>
/// <param name="dt2">日期2</param>
/// <param name="dateformat">間隔格式: y:年 M:月 d:天 h:小時 m:分鐘 s:秒 fff:毫秒 ffffff:微妙 fffffff:100毫微妙</param>
/// <returns>間隔 long型</returns>
public static long GetIntervalOf2DateTime(DateTime dt1,DateTime dt2,string dateformat)
{
try
{
long interval = dt1.Ticks - dt2.Ticks;
DateTime dt11;
DateTime dt22;
switch(dateformat)
{
case "fffffff"://100毫微妙
break;
case "ffffff"://微妙
interval /= 10;
break;
case "fff"://毫秒
interval /= 10000;
break;
case "s"://秒
interval /= 10000000;
break;
case "m"://分鐘
interval /= 600000000;
break;
case "h"://小時
interval /= 36000000000;
break;
case "d"://天
interval /= 864000000000;
break;
case "M"://月
dt11 = (dt1.CompareTo(dt2) >= 0)?dt2:dt1;
dt22 = (dt1.CompareTo(dt2) >= 0)?dt1:dt2;
interval = -1;
while(dt22.CompareTo(dt11) >= 0)
{
interval ++;
dt11 = dt11.AddMonths(1);
}
break;
case "y"://年
dt11 = (dt1.CompareTo(dt2) >= 0)?dt2:dt1;
dt22 = (dt1.CompareTo(dt2) >= 0)?dt1:dt2;
interval = -1;
while(dt22.CompareTo(dt11) >= 0)
{
interval ++;
dt11 = dt11.AddMonths(1);
}
interval /= 12;
break;
}
return interval;
}
catch(Exception ex)
{
string error = ex.Message;
return 0;
}
}
acenk
2005-06-20
打赏
举报
回复
d1-d2 就是天数
月数 (d1.Year-d2.Year)*12+d1.Month-d2.Month
nethawkc
2005-06-20
打赏
举报
回复
TotalDay.Text=(DateTime.Parse(Day1Edit.Text)-DateTime.Parse(Day2Edit.Text)).TotalDays.ToString(); //相差的天数
TotalHour.Text=(DateTime.Parse(Day1Edit.Text)-DateTime.Parse(Day2Edit.Text)).TotalHours.ToString(); //相差的小时
TotalMinute.Text=(DateTime.Parse(Day1Edit.Text)-DateTime.Parse(Day2Edit.Text)).TotalMinutes.ToString(); //相差的分钟
至于相差的月数, 这要自己算了, 没有直接的函数可以用
zhongwanli
2005-06-20
打赏
举报
回复
二楼
happyapple050429
2005-06-20
打赏
举报
回复
天数是直接相减就得了,上面说了,月数的话麻烦,我自己也写了个,不过我的日期相差大,所以用的是年,不一定适合你,你先看下算法:
一,判断两日期之间有没包括2月份日期。
二,判断各年是否润年(因为润年2月为29天)。
三,直接用两日期相差的天数减掉润年多出的天数,除以365,得出所差年数。
四,年数乘以12就得月数。
这种方法只适合两日期相差大的时候,希望哪位有更好的算法!大家共同进步!
fanruinet
2005-06-17
打赏
举报
回复
dateTime1 = DateTime.Now;
...
TimeSpan ts = dateTime1 - dateTime2;
Console.WriteLine("天数" + ts.Days);
月数在做除法,30天还是31天随便
真相重于对错
2005-06-17
打赏
举报
回复
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdatetimeclassop_subtractiontopic.htm
计算
两个
日期
间的年
月
日差
前几天和同事讨论如何计算
两个
日期
之间的年
月
日差,没想到实际计算起来还是挺麻烦,最终经过多次重构,完成了计算
两个
日期
间的年
月
日差。
python 计算
两个
日期
相差
多少个
月
实例代码
近期,由于业务需要计算
两个
日期
之前
相差
多少个
月
。我在网上找了很久,结果发现万能的python,居然没有一个模块计算
两个
日期
的
月
数
,像Java、
C#
之类的高级语言,都会有(date1-date2).months的现成方法,觉得不可思议。说句实在的,一直觉得python 的
日期
处理模块真心不好用。 哦,对了,别跟我说 datetime, calendar, dateutil 这些模块,因为我都试过了,都没用。有个竟然算出来还有错。datetime.timedelta只能计算出日时分秒。对年
月
却不支持。网上一搜,一大堆的。 dateutil.rrule这个例子是我好不容易找到的,请看我的测试结果:
asp.net(
C#
)实现功能强大的时间
日期
处理类完整实例
主要介绍了asp.net(
C#
)实现功能强大的时间
日期
处理类,封装了针对
日期
与时间的各种常用的判断与计算功能,非常方便实用,需要的朋友可以参考下
C#
精确计算年龄的方法分析
主要介绍了
C#
精确计算年龄的方法,实例分析了
C#
计算时间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
c#
和sql如何获得时间间隔的方法
主要介绍了
c#
和sql如何获得时间间隔的方法,有需要的朋友可以参考一下
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章