帮我看下日期相减怎么得到天数 http://msdn.microsoft.com/zh-cn/library/system.datetime.subtract(v=vs.100).aspx 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DateTime dt1=Convert.ToDateTime(textBox1.Text); DateTime dt2=Convert.ToDateTime(textBox2.Text); TimeSpan ts = dt2 - dt1; int d = ts.Days; lable13.Tetx=ExecDateDiff(DateTime.Parse(shijian.Text), DateTime.Parse(tuifang.Text));//返回22.85 天 // return ts3.TotalDays.ToString(); 改成 return ts3.Days.ToString(); 结果是22[code=csharp]/// <summary> /// 程序执行时间测试 /// </summary> /// <param name="dateBegin">开始时间</param> /// <param name="dateEnd">结束时间</param> /// <returns>返回(天)单位</returns> public static string ExecDateDiff(DateTime dateBegin, DateTime dateEnd) { TimeSpan ts1 = new TimeSpan(dateBegin.Ticks); TimeSpan ts2 = new TimeSpan(dateEnd.Ticks); TimeSpan ts3 = ts1.Subtract(ts2).Duration(); //你想转的格式 return ts3.TotalDays.ToString(); }[/code] int days = (int)(DateTime.Now - Convert.ToDateTime(shijian.Text)).TotalDays;取整了,不管过不过12点都算是一天了。 你这个问题问的太水了一般旅馆算钱都是中午12点为基准线,所以算法都要跟着调整的所以入住时间要以这个时间点为调整,退房时间也是要以这个时间点内调整const byte SplitHour = 12;//分割时间点 public int GetDays() { DateTime dtIn = new DateTime(2014, 12, 1, 0, 0, 0); DateTime dtLeave = new DateTime(2014, 12, 13, 20, 0, 0); Func<DateTime, DateTime> func = (dt) => { if (dt.Date.AddHours(SplitHour) > dt) { dt = dt.Date.AddDays(-1);//小于分割时间的话,把时间往前延一天 } return dt.Date; };//修正日期 dtIn = func(dtIn); dtLeave = func(dtLeave); int days = (dtLeave - dtIn).Days; if (days == 0) { days = 1; } return days; } 我想复杂了……直接两个时间相减,然后向上取整就行了int days = Math.Ceiling((dt2-dt1).TotalDays) 表示初学者 看的还是有点不太懂点击进去详细方法介绍,不是有详细的demo么? System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0); System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0); System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0); // diff1 gets 185 days, 14 hours, and 47 minutes. System.TimeSpan diff1 = date2.Subtract(date1); // date4 gets 4/9/1996 5:55:00 PM. System.DateTime date4 = date3.Subtract(diff1); // diff2 gets 55 days 4 hours and 20 minutes. System.TimeSpan diff2 = date2 - date3; // date5 gets 4/9/1996 5:55:00 PM. System.DateTime date5 = date1 - diff2; //来个例子说明DateTime d = DateTime.Now;DateTime d2 = DateTime.Now;int days = (d2 - d).Days; 实例化的参数是字符串加下标值,为什么定义的构造方法里的参数只有一个STRING S? c#读写类对象到文本 c#页面加载的功能 C#控制任务栏的自动隐藏 C# 主窗体有控件,控件会挡住子窗体! 谁能告诉我像OUTLOOK标题条的GDI绘图系统色名称(50分)在线等,高手快来 请高手介绍一本适合于初学者的C#的书 在哪里可以找到videoroot用法? 用Response.Write()打开页面怎么让打开的页面在屏幕是居中? 屏幕传输的问题 net <255的 int 怎么转成 16进制的 byte 如何定时弹出窗口(show)呢?用Timers,提示类型不符
DateTime dt1=Convert.ToDateTime(textBox1.Text);
DateTime dt2=Convert.ToDateTime(textBox2.Text);
TimeSpan ts = dt2 - dt1;
int d = ts.Days;
//返回22.85 天 // return ts3.TotalDays.ToString(); 改成 return ts3.Days.ToString(); 结果是22
[code=csharp]/// <summary>
/// 程序执行时间测试
/// </summary>
/// <param name="dateBegin">开始时间</param>
/// <param name="dateEnd">结束时间</param>
/// <returns>返回(天)单位</returns>
public static string ExecDateDiff(DateTime dateBegin, DateTime dateEnd)
{
TimeSpan ts1 = new TimeSpan(dateBegin.Ticks);
TimeSpan ts2 = new TimeSpan(dateEnd.Ticks);
TimeSpan ts3 = ts1.Subtract(ts2).Duration();
//你想转的格式
return ts3.TotalDays.ToString();
}[/code]
int days = (int)(DateTime.Now - Convert.ToDateTime(shijian.Text)).TotalDays;取整了,不管过不过12点都算是一天了。
一般旅馆算钱都是中午12点为基准线,所以算法都要跟着调整的所以入住时间要以这个时间点为调整,退房时间也是要以这个时间点内调整const byte SplitHour = 12;//分割时间点
public int GetDays()
{
DateTime dtIn = new DateTime(2014, 12, 1, 0, 0, 0);
DateTime dtLeave = new DateTime(2014, 12, 13, 20, 0, 0);
Func<DateTime, DateTime> func = (dt) =>
{
if (dt.Date.AddHours(SplitHour) > dt)
{
dt = dt.Date.AddDays(-1);//小于分割时间的话,把时间往前延一天
}
return dt.Date;
};//修正日期
dtIn = func(dtIn);
dtLeave = func(dtLeave);
int days = (dtLeave - dtIn).Days;
if (days == 0)
{
days = 1;
}
return days;
}
直接两个时间相减,然后向上取整就行了
int days = Math.Ceiling((dt2-dt1).TotalDays)
表示初学者 看的还是有点不太懂点击进去详细方法介绍,不是有详细的demo么? System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0); // diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1); // date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1); // diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3; // date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;
DateTime d = DateTime.Now;
DateTime d2 = DateTime.Now;
int days = (d2 - d).Days;