如何判断双休日和节假日

zkb9604 2008-11-10 04:00:23
我想问下.怎么判断某段时间内的双休日和节假日天数
希望各位大大帮忙解答下.
说个具体点的思路,最好有个参考的代码.谢谢大家帮忙啊
...全文
1289 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinjianwoshishei 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wanghui0380 的回复:]
没有任何办法

我想问一下明年十一发几天,如何放!你知道??貌似这个都是国家根据当年具体情况定滴,你不太可能事先就知道
[/Quote]
往往考勤管理里面需要排除节假日和双休日或者单休日的。
双休日好办,但是如同这哥们说的,国家年前会发布次年的法定节假日,每年的各有不同,所以即使你根据农历和阳历之间的转换获取了当年的节假日,但是你用什么作为依据来判断节假日的天数,节假日的开始以及结束时间,节假日是否会和临近的双休日调休呢。有个比较笨拙但是有效的方法,就是让考勤管理员自己设置本年度的节假日以及特殊日期(不需要上班的:公司100周年庆典,公司新居搬迁,世界环保日停电两天,董事长过生日大家去蹭饭等情况)以及协议中需要周日或者周六上班的日子,其中假日以及特殊日期称为白名单设置,协议中需要周日或者周六上班的日子称为黑名单。
y315728570 2010-12-29
  • 打赏
  • 举报
回复
马克。。。。
qq309903548 2010-04-06
  • 打赏
  • 举报
回复
用DateTime.Now.DateOfWeek就能得到当天的星期,剩下的如法定假日或者农历将日放进配置文件中去配置死了。等过办规定了放假规定就随时改变。
yanxiguang_0 2008-11-17
  • 打赏
  • 举报
回复
放假的日子都不固定,怎么算
yanlongwuhui 2008-11-13
  • 打赏
  • 举报
回复
mark
水如烟 2008-11-12
  • 打赏
  • 举报
回复
仅供参考

矢集快照场景应用二:中国法定假日
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
chndnk 2008-11-12
  • 打赏
  • 举报
回复
路过,一起学习
zkb9604 2008-11-10
  • 打赏
  • 举报
回复
....10.1我先不管他怎么放,但是清明节,端午节啊,中秋节,春节总是农历固定的吧
wanghui0380 2008-11-10
  • 打赏
  • 举报
回复
没有任何办法

我想问一下明年十一发几天,如何放!你知道??貌似这个都是国家根据当年具体情况定滴,你不太可能事先就知道
zkb9604 2008-11-10
  • 打赏
  • 举报
回复
是啊,这个烦啊,又要把日期转换为农历
vbman2003 2008-11-10
  • 打赏
  • 举报
回复
貌似关系到农历,春节,中秋等不是固定日期...
zkb9604 2008-11-10
  • 打赏
  • 举报
回复
谢谢大哥啊.我好好瞅瞅,顺便问下计算2个日期段内天数的函数是什么
enihs 2008-11-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;
}

具体的节假日要算农历的,这个不好整,上面算出周六 周日
superplayboy 2008-11-10
  • 打赏
  • 举报
回复
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));

}
zkb9604 2008-11-10
  • 打赏
  • 举报
回复
是如何计算某段时间内的双休日和节假日天数
....写错了

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧