读书人

怎么判断双休日和节假日

发布时间: 2012-04-12 15:46:35 作者: rapoo

如何判断双休日和节假日
我想问下.怎么判断某段时间内的双休日和节假日天数
希望各位大大帮忙解答下.
说个具体点的思路,最好有个参考的代码.谢谢大家帮忙啊

[解决办法]
private bool IsHoliday(DateTime dt)
{
bool IsHoliday=false;
string[] Holiday=new string[2]{"10-1","5-1"};//这里自己定义
foreach(string i in Holiday)
{
if(dt.Month.ToString()+"-"+dt.Day.ToString()==i)
{
IsHoliday=true;
}
}
if(dt.DayOfWeek.ToString()=="Saturday"||dt.DayOfWeek.ToString()=="Sunday")
{
IsHoliday=true;
}
return IsHoliday;
}
private DateTime TimeLimit(DateTime startdate,int days)
{
DateTime TimeLimit=startdate;
for(int i=0;i<days;i++)
{
if(IsHoliday(startdate.AddDays(i)))
{
TimeLimit=TimeLimit.AddDays(1);
}
TimeLimit=TimeLimit.AddDays(1);
}
return TimeLimit;
}
调用:
private void button1_Click(object sender, System.EventArgs e)
{
System.Console.WriteLine(TimeLimit(System.Convert.ToDateTime("2004-10-10"),10));

}
[解决办法]
基姆拉尔森计算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日数,m表示月份数,y表示年数。

注意:在公式中有个与其他公式不同的地方:

把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。

代码如下:
//y-年,m-月,d-日期
string CaculateWeekDay(int y,int m, int d)
{
if(m==1) m=13;
if(m==2) m=14;
int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
string weekstr="";
switch(week)
{
case 1: weekstr="星期一"; break;
case 2: weekstr="星期二"; break;
case 3: weekstr="星期三"; break;
case 4: weekstr="星期四"; break;
case 5: weekstr="星期五"; break;
case 6: weekstr="星期六"; break;
case 7: weekstr="星期日"; break;
}

return weekstr;
}

具体的节假日要算农历的,这个不好整,上面算出周六 周日
[解决办法]
貌似关系到农历,春节,中秋等不是固定日期...
[解决办法]
没有任何办法

我想问一下明年十一发几天,如何放!你知道??貌似这个都是国家根据当年具体情况定滴,你不太可能事先就知道
[解决办法]
路过,一起学习
[解决办法]
仅供参考

矢集快照场景应用二:中国法定假日
http://topic.csdn.net/u/20071220/21/ede3eccd-06eb-4317-8f33-610d6ff61365.html

考勤之延伸:SQLServer2005 年工作日期
http://topic.csdn.net/u/20071227/14/1ed874d5-34f9-4e5b-9e69-1aef56d3e330.html
[解决办法]
mark
[解决办法]
放假的日子都不固定,怎么算

读书人网 >VB Dotnet

热点推荐