社区
C#
帖子详情
请问在C#中如何返回两个日期相差的天数或月数?
my98800
2005-06-17 08:35:25
请问在C#中如何返回两个日期相差的天数或月数?
...全文
2993
11
打赏
收藏
请问在C#中如何返回两个日期相差的天数或月数?
请问在C#中如何返回两个日期相差的天数或月数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
计算
两个
日期
之间
相差
的
月
数
计算
两个
日期
之间
相差
的
月
数
C#
计算
两个
日期
间隔年
数
、
月
数
、
天
数
在线测试编辑器:菜鸟编辑器 string sq="1998/1/20"; string sz="2027/12/31"; DateTime dt1 = DateTime.Parse(sq); DateTime dt2 = DateTime.Parse(sz); string Year = (dt2.Year - dt1.Year).ToString()+"年"; Console.WriteLine(Year);//29年 TimeSpan ts1 = new TimeSpan(.
php
两个
时间
相差
月
数
,PHP 求
两个
日期
之间
相差
的
天
数
、
月
数
/*** 求
两个
日期
之间
相差
的
天
数
* (针对1970年1
月
1日之后,求之前可以采用泰勒公式)* @param string $day1* @param string $day2* @return number*/function diffBetweenTwoDays ($day1, $day2){$second1 = strtotime($day1);$second2 = strtotime($d...
计算C#
中
两个
日期
之间的
月
份差
There are a lot of written methos of getting the difference between two dates, but I couldn't find the one I needed. I need to have a real difference like 3.7...
c#
如何计算
两个
日期
相差
几年几个
月
?
C#
日期
间隔
c#
时间间隔
/// /// 计算
日期
的间隔(静态类)/// public static class dateTimeDiff{ /// /// 计算
日期
间隔 /// /// 要参与计算的其
中
一个
日期
字符串 /// 要参与计算的另一个
日期
字符串 /// 一个表示
日期
间隔的TimeSpan类型 public static TimeSpan toResult(strin
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章