加入using System.Globalization;
测试时请把参数d改成"yyyyMMdd"格式,例如"20230614"
主要转换属性为DateTime.DayOfYear及GregorianCalendar.GetWeekOfYear()
1.天数
DateTime date = DateTime.ParseExact("20240229", "yyyyMMdd", CultureInfo.InvariantCulture);int day = date.DayOfYear;Console.WriteLine(day);
2.週数
public static int W(string d){ DateTime date = DateTime.ParseExact(d, "yyyyMMdd", CultureInfo.InvariantCulture); int week = GetWeekOfYear(date); return week;}private static int GetWeekOfYear(DateTime dt){ GregorianCalendar gc = new GregorianCalendar(); return gc.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Monday);}