using System;
using System.Collections.Generic;
namespace WorkDay
{
class Program
{
static readonly List<string> Holidays=new List<string>()
{
"2013-01-01","2013-01-02","2013-01-03",
"2013-02-09","2013-02-10","2013-02-11", "2013-02-12","2013-02-13","2013-02-14","2013-02-15",
"2013-04-04","2013-04-05","2013-04-06",
"2013-04-29","2013-04-30","2013-05-01",
"2013-06-10","2013-06-11","2013-06-12",
"2013-09-19","2013-09-20","2013-09-21",
"2013-10-01","2013-10-02","2013-10-03","2013-10-04","2013-10-05","2013-10-06","2013-10-07"
};
static readonly List<string> UnHolidays = new List<string>()
{
"2013-01-05","2013-01-06",
"2013-02-16","2013-02-17",
"2013-04-07",
"2013-04-27","2013-04-28",
"2013-06-08","2013-06-09",
"2013-09-22",
"2013-09-29","2013-10-12"
};
static void Main(string[] args)
{
DateTime startDate=new DateTime(2013,1,1);
DateTime endDate =new DateTime(2013,1,31);
int day = CalcWorkDay(startDate, endDate);
Console.WriteLine(day);
Console.ReadKey();
}
static int CalcWorkDay(DateTime startDate, DateTime endDate)
{
DateTime dateTime = startDate;
int day = 0;
while (dateTime.Date<=endDate.Date)
{
if (JudgeWorkDay(dateTime))
{
day++;
Console.WriteLine(dateTime.ToString("yyyy-MM-dd"));
}
dateTime = dateTime.AddDays(1);
}
return day;
}
static bool JudgeWorkDay(DateTime dateTime)
{
string dateStr = dateTime.ToString("yyyy-MM-dd");
//判断 周六周日
if ((dateTime.DayOfWeek == DayOfWeek.Saturday || dateTime.DayOfWeek == DayOfWeek.Sunday))
{
//调休日
if (UnHolidays.Contains(dateStr))
{
return true;
}
return false;
}
if (Holidays.Contains(dateStr))
{
return false;
}
return true;
}
}
}