winform中获取当前周次

/*方法一*/
var dt = DateTime.Now;
//找到今年的第一天是周几
int firstWeekend = Convert.ToInt32(DateTime.Parse(dt.Year + "-1-1").DayOfWeek);

//获取第一周的差额,如果是周日,则firstWeekend为0,第一周也就是从周天开始的。
int weekDay = firstWeekend == 0 ? 1 : (7 - firstWeekend + 1);

//获取今天是一年当中的第几天
int currentDay = dt.DayOfYear;

//(今天 减去 第一周周末)/7 等于 距第一周有多少周 再加上第一周的1 就是今天是今年的第几周了
// 刚好考虑了惟一的特殊情况就是,今天刚好在第一周内,那么距第一周就是0 再加上第一周的1 最后还是1
int current_week = Convert.ToInt32(Math.Ceiling((currentDay - weekDay) / 7.0)) + 1;

this.label1.Text = "当前周次:" + current_week.ToString();

/*方法二*/
System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
int weekOfYear = gc.GetWeekOfYear(DateTime.Now, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
this.label1.Text = "当前周次:" + weekOfYear.ToString();

原文地址:https://www.cnblogs.com/12jh23/p/7667213.html