c#如何计算两个日期相差几年几个月?

我想计算出从一个时间开始到另一个时间结束过了几年几个月,要是不足一年就只显示几个月!比如2008年10月1日距现在是8个月,2007年1月1日距现在是2年5个月。用c#怎... 我想计算出从一个时间开始到另一个时间结束过了几年几个月,要是不足一年就只显示几个月!比如2008年10月1日距现在是8个月,2007年1月1日距现在是2年5个月。用c#怎么写?高手帮忙啊!
我是要在c#中判断,然后把值写入数据库的!
展开
 我来答
一骑当后
2015-07-04 · 知道合伙人数码行家
一骑当后
知道合伙人数码行家
采纳数:40298 获赞数:306448
网络、设备维护、电路、弱电检测。

向TA提问 私信TA
展开全部

C#中计算2个时间之间的差,可以计算到时分秒,参考代码如下:

label1.Text = "2012-1-1 15:36:05"; 
label2.Text = "2012-2-1 20:16:35"; 
DateTime d1 =new DateTime(2012,1,1,15,36,05); 
DateTime d2 =new DateTime(2012,2,1,20,16,35); 

TimeSpan d3 = d2.Subtract(d1); 

label3.Text = "相差:" 
+d3.Days.ToString()+"天" 
+d3.Hours.ToString()+"小时" 
+d3.Minutes.ToString()+"分钟" 
+d3.Seconds.ToString()+"秒";
mssky1977
推荐于2018-03-26
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
//直接用日期对象的年和月属性相减
DateTime dt1,dt2;
dt1 = DateTime.Now;
dt2 = value;
int ys =dt1.Year - dt2.Year;
int ms = dt1.Month - dt2.Month

//span就是两个日期相差的月数
int span = ys*12 + ms

string s="";
if(span/12>0)
s = span/12 + "年" + span%12 + "月"
else
s = span%12 + "月";
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
国际学院CEO
2009-06-12 · TA获得超过195个赞
知道小有建树答主
回答量:584
采纳率:0%
帮助的人:0
展开全部
写2个 做差的函数
年-年=??大于0的计算
月-月=月 大于等于0
切年限制1900-2999
月限制1-12
简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syw1020
2009-06-12 · 超过22用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:0
展开全部
用sql很好实现
if datediff(m,bdate,edate)>12
begin
select datediff(m,bdate,edate)/12
end
else
select datediff(m,bdate,edate)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
历又
2009-06-12 · TA获得超过299个赞
知道小有建树答主
回答量:726
采纳率:100%
帮助的人:455万
展开全部
string s1="2007-1-2";
string s2 = "2009-6-12";
DateTime date1 = DateTime.Parse(s1);
DateTime date2 = DateTime.Parse(s2);
……
……

参考资料: http://hi.baidu.com/%C0%FA%D3%D6/blog/item/09b3ec37d74787390a55a9b6.html

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式