110,538
社区成员
发帖
与我相关
我的任务
分享
static void Main(string[] args)
{
//开始时间和结束时间
DateTime dtStart = DateTime.Parse("2013-11-03 12:30:10");
DateTime dtEnd = DateTime.Parse("2013-11-07 1:20:00");
//一共多少天
int iDays = (dtEnd.Date - dtStart.Date).Days + 1;
DateTime dtDate;
string sDateDiff ="";
for (int i = 0; i < iDays; i++)
{
dtDate = dtStart.Date.AddDays(i);
if (i > 0 && i < iDays - 1)
{
//中间段固定24小时
sDateDiff = "24小时";
Console.WriteLine(dtDate.Date.ToShortDateString() + " " + sDateDiff);
}
else
{
if (iDays == 1)
{
//开始时间和结束时间同一天
sDateDiff = DateDiff(dtEnd, dtStart);
Console.WriteLine(dtDate.Date.ToShortDateString() + " " + sDateDiff);
}
else
{
if (i == 0)
{
//第一天
sDateDiff = DateDiff(dtStart.Date.AddDays(1), dtStart);
Console.WriteLine(dtDate.Date.ToShortDateString() + " " + sDateDiff);
}
else
{
//最后一天
sDateDiff = DateDiff(dtEnd, dtEnd.Date.AddDays(-1));
Console.WriteLine(dtDate.Date.ToShortDateString() + " " + sDateDiff);
}
}
}
}
Console.ReadLine();
}
/// <summary>
/// 计算两个日期的时间间隔
/// </summary>
/// <param name="DateTime1">第一个日期和时间</param>
/// <param name="DateTime2">第二个日期和时间</param>
/// <returns></returns>
private static string DateDiff(DateTime DateTime1, DateTime DateTime2)
{
string dateDiff = "";
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
if (ts.Hours > 0)
{
dateDiff += ts.Hours.ToString() + "小时";
}
if (ts.Minutes > 0)
{
dateDiff += ts.Minutes.ToString() + "分钟";
}
if (ts.Seconds > 0)
{
dateDiff += ts.Seconds.ToString() + "秒";
}
return dateDiff;
}
/// <summary>
/// 计算两个日期的时间间隔
/// </summary>
/// <param name="DateTime1">第一个日期和时间</param>
/// <param name="DateTime2">第二个日期和时间</param>
/// <returns></returns>
private string DateDiff(DateTime DateTime1, DateTime DateTime2)
{
string dateDiff = null;
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
dateDiff = ts.Days.ToString()+"天"
+ ts.Hours.ToString()+"小时"
+ ts.Minutes.ToString()+"分钟"
+ ts.Seconds.ToString()+"秒";
return dateDiff;
}