C#:根据年、月、日获取星期几

1.
///
根据日期,获得星期几
//////////// 星期几,1代表星期一;7代表星期日
public static int getWeekDay(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+1;
return week;
}
C#的功能很强大,却没有直接提供面向汉字文化的开发倾向
比如我现在要说的获取当前的星期我提供两种方法:
①,DateTime.Now.DayOfWeek ,查询MSDN可以知道该属性返回的结果是:
//
        // 摘要:
        //     获取此实例所表示的日期是星期几。
        //
        // 返回结果:
        //     一个 System.DayOfWeek 枚举常数,它指示星期几。该属性值的范围从零(表示星期日)到六(表示星期六)。
        public DayOfWeek DayOfWeek
        {
            get;
        }
依据这个我们想见该属性提供了从星期日到星期六的位置,也就是说是枚举,枚举结合数组不就可以提取我们想要的数据了吗!代码如下:
public string Week()
        {
            string[] weekdays ={ "星期日" ,"星期一" ,"星期二" ,"星期三" ,"星期四" ,"星期五" ,"星期六" };
            string week=weekdays[Convert.ToInt32(DateTime.Now.DayOfWeek)];
            return week;
        }
你只要调用该方法:Week()就可以得到当前星期几的汉字表示 Lable1.Text=Week();
②第二种方法是直接根据星期的数目比较小还可以直接转化,这时候我们可以用switch关键字代码如下:
public string Week(string weekName)
        {
            string week;
            switch(weekName)
            {
                case "Sunday":
                    week = "星期日";
                    break;
                case "Monday":
                    week = "星期一";
                    break;
                case "Tuesday":
                    week = "星期二";
                    break;
                case "Wednesday":
                    week = "星期三";
                    break;
                case "Thursday":
                    week = "星期四";
                    break;
                case "Friday":
                    week = "星期五";
                    break;
                case "Saturday":
                    week = "星期五";
                    break;
                    return week;
            }
        }
你只要调用该方法:Week(DateTime.Now.DayOfWeek)就可以返会汉字的星期几,Lable1.Text=Week(DateTime.Now.DayOfWeek);
原文地址:https://www.cnblogs.com/puzi0315/p/2628939.html