C# 获取日期星期几,原理

        /// <summary>
        /// 判断是否是周六,周天
        /// </summary>
        /// <param name="y">年  如 2018</param>
        /// <param name="m">月  如 8 </param>
        /// <param name="d">日  如 20</param>
        /// <returns></returns>
        private static bool Whether_Weekend(int y, int m, int d)
        {
            if (m == 1 || m == 2)
            {
                m += 12;
                y--;
            }
            int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7; // 基姆拉尔森公式 
            if (week == 5 || week == 6)//0、 星期一 1、星期二  ... 6、星期日
            {
                return true;
            }
            else
            {
                return false;
            }
        }

以下是.net系统封装好的方法

int d = DateTime.Now.DayOfYear; //一年中的第几天

DayOfWeek da = DateTime.Now.DayOfWeek;
//DayofWeek是个枚举类型的  也可以强转int类型
//0、星期日 1、星期一  6、星期六

int w = (int)DateTime.Now.DayOfWeek;