.NET判断某一年的所有放假的日期

由于工作需求写的一个程序,判断某一年所有的放假日期,根据国家的法定假日和补休日期进行的判断。

        protected void Button1_Click(object sender, EventArgs e)

        {

            string sql = "";

            //2015年1月1日的星期数

            int year = 2015;

            int week = 4;

            for (int month = 1; month <= 12; month++)

            {

                int day = 31;

                switch (month)

                {

                    case 2:

                        if (IsLeapYear(year))

                        {

                            day = 29;

                        }

                        else

                        {

                            day = 28;

                        }

                        break;

                    case 4:

                        day = 30;

                        break;

                    case 6:

                        day = 30;

                        break;

                    case 9:

                        day = 30;

                        break;

                    case 11:

                        day = 30;

                        break;

                }

                for (int a = 1; a <= day; a++)

                {

                    string time = string.Format("{0}-{1}-{2}", year, month, a);

                    if (week == 7 || checkfangjia(time))

                    {

                        if (!bufangjia(time))

                        {



                            string m = string.Format("INSERT INTO [dbo].[tm_holidays] ([id], [year], [date]) VALUES (N'" + year + "', N'{0} 00:00:00.000');</br>", time);

                            sql += m;

                            Response.Write(m);

                            //Response.Write("2015年" + month + "月" + a + "日" + "星期" + week + "</br>");

                        }

                    }

                    if (week == 7)

                    {

                        week = 1;

                    }

                    else

                    {

                        week++;

                    }

                }

            }

        }

        //判断某一天是否放假

        public bool checkfangjia(string day)

        {

            //所有放假的日期

            string[] fangjia = { "2015-1-1", "2015-1-2", "2015-1-3", "2015-2-18", "2015-2-19", "2015-2-20", "2015-2-21", "2015-2-22", "2015-2-23", "2015-2-24", "2015-4-4", "2015-4-5", "2015-4-6", "2015-5-1", "2015-5-2", "2015-5-3", "2015-6-20", "2015-6-21", "2015-6-22", "2015-9-26", "2015-9-27", "2015-10-1", "2015-10-2", "2015-10-3", "2015-10-4", "2015-10-5", "2015-10-6", "2015-10-7" };

            foreach (string s in fangjia)

            {

                if (s.Equals(day))

                {

                    return true;

                }

            }

            return false;

        }

        //判断某一天是否调休

        public bool bufangjia(string day)

        {

            //与周六 周日调休的日期

            string[] bufangjia = { "2015-1-4", "2015-2-15", "2015-2-28", "2015-10-10" };

            foreach (string s in bufangjia)

            {

                if (s.Equals(day))

                {

                    return true;

                }

            }

            return false;

        }

        //判断平年还是闰年

        private bool IsLeapYear(int year)

        {

            if (year % 100 == 0)

            {

                if (year % 400 == 0)

                {

                    return true;

                }

            }

            else

            {

                if (year % 4 == 0)

                {

                    return true;

                }

            }

            return false;

        }

 

你可能感兴趣的:(.net)