![](/img/trans.png)
[英]Find the Current Week from Datetime.Now and How to find given Date between current week dates?
[英]Getting the list of days of the current week from DateTime.Now
我的矛盾或者很简单的问题是从今天开始,以DD-MM-YY格式创建一个日期列表。 假设我们今天有“11/04/2015”好吗? 我有兴趣创建一个日期时间列表,该列表从2015年11月2日星期一到2015年11月8日星期日开始。 这怎么可能? 我最初想过:
DateTime today = new DateTime.Now;
int posDayOfWeek = (int)today.DayOfWeek;
if (posDayOfWeek < 7 && posDayOfWeek > 1)
{
// And from there a black hole in my brain ....
}
我真的不知道该怎么办....
谢谢Cristian Capannini
假设你总是想要周一到周日,你只需要:
DateTime today = DateTime.Today;
int currentDayOfWeek = (int) today.DayOfWeek;
DateTime sunday = today.AddDays(-currentDayOfWeek);
DateTime monday = sunday.AddDays(1);
// If we started on Sunday, we should actually have gone *back*
// 6 days instead of forward 1...
if (currentDayOfWeek == 0)
{
monday = monday.AddDays(-7);
}
var dates = Enumerable.Range(0, 7).Select(days => monday.AddDays(days)).ToList();
只要用这个:
DayOfWeek[] days = {
DayOfWeek.Sunday,
DayOfWeek.Monday,
DayOfWeek.Tuesday,
DayOfWeek.Wednesday,
DayOfWeek.Thursday,
DayOfWeek.Friday,
DayOfWeek.Saturday };
这很简单。 很明显。 而且我已经为你输入了它。
在网上搜索类似的东西,我找到了这个问题/答案线程并进行了扩展以根据从昨天开始的星期几创建排序顺序:
//create a sort order that starts yesterday
DateTime orderStartDate = DateTime.Today.AddDays(-1);
List<int> sortOrder = Enumerable.Range(0,7).Select(days => (int)orderStartDate.AddDays(days).DayOfWeek).ToList();
//sort collection using the index of the sortOrder
collection.AddRange(list.OrderBy(list => sortOrder.FindIndex(days => day == list.TargetDay)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.