读书人

求解:C# 时间的加减演算【一个去年的

发布时间: 2014-06-05 16:41:58 作者: rapoo

求解:C# 时间的加减运算【一个去年的随机日期2014/1/9 15:58:38 距离当前今天多少天,周六日不计算在内。
求当前时间减去 去年的一个随见时间或者今年的某个时间(中间不包括周六日)


大家有什么好的方法啊。求解:C# 时间的加减演算【一个去年的随机日期2014/1/9 15:58:38  距离当前今天多少天,周六日不计算在内
[解决办法]



public int TotalWorkday(DateTime AStart, DateTime AEnd)
{
TimeSpan vTimeSpan = new TimeSpan(AEnd.Ticks - AStart.Ticks);
// 跨度多少个星期,每个星期5个工作日
int Result = ((int)vTimeSpan.TotalDays / 7) * 5;

// 计算余下的日期中的工作日
for (int i = 0; i <= vTimeSpan.TotalDays % 7; i++)
switch (AStart.AddDays(i).DayOfWeek)
{
case DayOfWeek.Saturday:
case DayOfWeek.Sunday:
break;
default:
Result++;
break;
}
return Result;
} /* TotalWorkday */

private void button1_Click(object sender, EventArgs e)
{
Text = TotalWorkday(new DateTime(2007, 4, 6),
new DateTime(2007, 4, 11)).ToString();
}


[解决办法]
个人思路:
除7算法

假设星期一到星期日分别标识为1-7
凑够7天-2天为一个周期
假设开始日期跟结束日期相差为7的整数 Days, 那么之间的间隔时间就为 Days - (2*Days/7)

有点复杂的就是怎么去凑一个周期,是开始日期去凑还是结束日期去凑
或者直接点判断当前日期是周几,然后开始日期向前凑到周几再减去间隔工作日

具体到时间的话,不知道能不能直接用时间判断是否满24小时来加减一天

如有错误请指正

读书人网 >asp.net

热点推荐