怎样计算相差年比如2008-5-1跟2006-3-1是相差两年.但2008-5-1跟2006-6-4是相差一年还是两年呢.之间还要考虑年 是365还是366天
解决方案 »
- 显示控制
- ASP.NET怎么实现中英文版本切换,我是放在资源文件里,怎么根据中英文加载对应的中英文资源文件
- VS2008打开项目报无法打开.csproj的错误
- 编译器错误信息: CS0123: “MyList_Page”的重载均与委托“System.EventHandler”不匹配
- 谁知道用C#代码如何解压缩QQ表情的压缩包(.eip和.cfc格式)
- 动态添加的Button如何添加它的Click事件
- 一个DataGrid1问题.急急.
- checkBox控件的AutoPostBack属性出错问题?
- SQL 语句中取最后一条记录ID的语句怎么写?
- format
- sql 根蹤器的問題?
- aspx 输出"\"问题
可以得到2个时间差
DateTime end = DateTime.Parse("2008-5-1");
int years = -1;
if (start > end)
MessageBox.Show("开始日期大于结束日期!");
else
{
while (start <= end)
{
start = start.AddYears(1);
years++;
}
MessageBox.Show("相差" + years + "年");
}
DateTime dt1 = new DateTime(2008,5,1);
DateTime dt2 = new DateTime(2006,6,4);
TimeSpan ts = dt2 - dt1;
Response.Write("两者相差:"+ts.Years.ToString()+"年"+ts.Months.ToString()+"月"+ts.Days.ToString()+"日");
//计算时间差
TimeSpan ts1 = new TimeSpan(endtime.Ticks);
TimeSpan ts2 = new TimeSpan(startTime.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
//ts.TotalSeconds
dateDiff = "耗时:" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒"
//这个非常GOOD
DateTime start = DateTime.Parse("2006-3-1");
DateTime end = DateTime.Parse("2008-5-1");
int years = -1;
if (start > end)
MessageBox.Show("开始日期大于结束日期!");
else
{
while (start <= end)
{
start = start.AddYears(1);
years++;
}
MessageBox.Show("相差" + years + "年");
}
这个压根就是错误的 根本就没有 ts.Years
DateTime dt2 = new DateTime(2006, 6, 4);
TimeSpan dt = dt1 - dt2;
int n = Convert.ToInt32 (dt.Days.ToString());
Response.Write("两者相差:" + n + "天----" + (n / 365) + "年又" + (n % 365) / 30 + "月又" + ((n % 365) %30)+"天");
DateTime now = DateTime.Now;
TimeSpan result =dt.Subtract(now);
result.Days 获取天数.根据天数判断...
发表于:2008-06-27 21:48:013楼 得分:0
SQL中datediff(yy,'2006-3-1','2008-5-1')即可得到
但这两时间不在数据库里呢.只是从前台得到的.如果把他们插入数据库操作会降低执行效率!
timespan 只能计算现个日期之间的天数!,你可以根据天数计算年数!中间有判断(365天or366天);
DateTime dt2 = new DateTime(2006,6,4);
TimeSpan ts = dt2 - dt1;
Response.Write("两者相差:"+ts.Years.ToString()+"年"+ts.Months.ToString()+"月"+ts.Days.ToString()+"日");