根據年月計算每個月有多少天和返回日期是星期幾

        /// <summary>
        /// 返回每月一號是周幾
        /// </summary>
        /// <param name="y"></param>
        /// <param name="m"></param>
        /// <param name="d"></param>
        /// <returns></returns>
        public static int CaculateWeekDay(int y, int m, int d)
        {
            if (m == 1)
            {
                m = 13;
                y = y - 1;
            }
            if (m == 2)
            {
                m = 14;
                y = y - 1;
            }
            int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
            return week;
            //返回值定義如下
            //    case 0: weekstr = "星期一"; break;
            //    case 1: weekstr = "星期二"; break;
            //    case 2: weekstr = "星期三"; break;
            //    case 3: weekstr = "星期四"; break;
            //    case 4: weekstr = "星期五"; break;
            //    case 5: weekstr = "星期六"; break;
            //    case 6: weekstr = "星期日"; break;
        }

        /// <summary>
        /// 根據年,月取得本月天數
        /// </summary>
        /// <param name="month"></param>
        /// <param name="year"></param>
        /// <returns></returns>
        public static int NumberOfDays(int year, int month)
        {
            int[] numDays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

            int n = numDays[month - 1];
            //取得每月天數,判斷平年閏年
            if (month == 2 && year % 4 == 0)
            {
                ++n;
            }
            return n;
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章