C#计算指定日期是当年第几周

C#自带类实现:

//using System.Globalization;
public static int WeekOfYear(DateTime date)
{
    CultureInfo culture = new CultureInfo("zh-CN");
    culture.DateTimeFormat.CalendarWeekRule = CalendarWeekRule.FirstDay;
    culture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;

    return culture.Calendar.GetWeekOfYear(date, culture.DateTimeFormat.CalendarWeekRule, culture.DateTimeFormat.FirstDayOfWeek);
}

自己写函数实现:

public static int WeekOfYear(DateTime date)
{
    //1.计算元旦是周几
    DateTime FirstDay = DateTime.Parse(string.Format("{0}-{1}-{2}", date.Year, "1", "1"));
    int dayofweek = 0;
    switch (FirstDay.DayOfWeek)
    {
        case DayOfWeek.Monday:
            dayofweek = 1;
            break;
        case DayOfWeek.Tuesday:
            dayofweek = 2;
            break;
        case DayOfWeek.Wednesday:
            dayofweek = 3;
            break;
        case DayOfWeek.Thursday:
            dayofweek = 4;
            break;
        case DayOfWeek.Friday:
            dayofweek = 5;
            break;
        case DayOfWeek.Saturday:
            dayofweek = 6;
            break;
        case DayOfWeek.Sunday:
            dayofweek = 7;
            break;
    }
    //2.总天数补足第一周天数
    int dayofyear = date.DayOfYear;
    if (dayofweek > 1) dayofyear += (dayofweek - 1);
    return (int)Math.Ceiling((decimal)dayofyear / 7);
}


评论: 0 | 引用: 0 | 查看次数: 4210
发表评论
登录后再发表评论!