获取一年的周数列表-包含日期我绞尽脑汁,但周五晚了,我要兜圈子了。我需要为下拉列表创建一个工作周列表,并将周数作为值。所以代码会输出:MonAug22-FriSept26MonAug29-FriSept2MonSept5-FriSept9etc..整整一年。任何想法我将如何实现这一目标?谢谢。我认为以下代码符合ISO8601:varjan1=newDateTime(DateTime.Today.Year,1,1);//注意不同的文化,查看其他答案varstartOfFirstWeek=jan1.AddDays(1-(int)(jan1.DayOfWeek));varweeks=Enumerable.Range(0,54).Select(i=>new{weekStart=startOfFirstWeek.AddDays(i*7)}).TakeWhile(x=>x.weekStart.Yearnew{x.weekStart,weekFinish=x.weekStart.AddDays(4)}).SkipWhile(x=>x.weekFinishnew{x.weekStart,x.weekFinish,weekNum=i+1});请记住,那个星期是在不同的文化中计算的,如果您看到第53周,就不会错!使用System.Globalization;CultureInfocultInfo=CultureInfo.CurrentCulture;intweekNumNow=cultInfo.Calendar.GetWeekOfYear(DateTime.Now,cultInfo.DateTimeFormat.CalendarWeekRule,cultInfo.DateTimeFormat.FirstDayOfWeek);Datetimes输出更符合您的要求。DateTimejan1=newDateTime(DateTime.Today.Year,1,1);//注意不同的文化,查看其他答案DateTimestartOfFirstWeek=jan1.AddDays(1-(int)(jan1.DayOfWeek));变种星期=可枚举的。Range(0,54).Select(i=>new{weekStart=startOfFirstWeek.AddDays(i*7)}).TakeWhile(x=>x.weekStart.Yearnew{x.weekStart,weekFinish=x.weekStart.AddDays(4)}).SkipWhile(x=>x.weekFinish.Yearnew{WeekStart=x.weekStart.ToString("dddd,d,MMMM"),WeekFinish=x.weekFinish.ToString("dddd,d,MMMM"),weekNum=i+1});将格式更正为您想要的格式的更改是在匿名对象的最后选择中。您可能需要稍微调整一下,但它应该可以满足您的需要:staticvoidMain(string[]args){Listweeks=newList();日期时间beginDate=newDateTime(2011,01,01);DateTimeendDate=newDateTime(2012,01,01);DateTime星期一=DateTime.Today;DateTime星期五=DateTime.Today;while(beginDate可以使用.NET时间段库的Week类:以上是C#学习教程:获取一年中的星期列表——包含日期分享的所有内容,如果对你有用,你需要了解更多C#学习教程,希望大家多多关注---DateTimestart=DateTime.Now.Date;DatTimeend=start.AddYears(1);Weekweek=newWeek(start);while(week.首发本文收集自网络,不代表立场,如涉及侵权,请点右联系管理员删除,转载请注明出处:
