c# - 在 ASP.net Core mvc 中过滤特定日期
问题描述
我目前正在制定一个议程,我想从即将到来的一周返回几天。
我的控制器中此视图的代码如下:
public ViewResult List()
{
return View(repository.Days
.OrderBy(d => d.date));
}
但是,此函数仅排序并返回所有日期,而不仅仅是下周的日期。我想知道是否有人可以帮助我获得即将到来的一周的日期/日期,从而获得所需的排序运算符。
解决方案
找到了合适的解决方案:
public ViewResult List()
{
DateTime startOfCurrentWeek = DateTime.Today.AddDays(-1 * (int)(DateTime.Today.DayOfWeek));
DateTime startOfNextWeek = startOfCurrentWeek.AddDays(8);
DateTime endOfNextWeek = startOfCurrentWeek.AddDays(14);
return View(repository.Days
.Where(d => d.date >= startOfNextWeek && d.date <= endOfNextWeek));
}
这段代码的作用是:
- 获取本周开始日期 (startOfCurrentWeek)
- 添加 8 天以使其从下周的星期一开始(startOfNextWeek)
- 将 14 天添加到当前周的开始日期,以获得下周的最后一天 (endOfNextWeek)
- 返回等于或在下周星期一开始之后的所有天数 (d => d.date >= startOfNextWeek)
- 下周的星期日之后不返回任何值,因此将输出限制为下周的 7 天(d.date <= endOfNextWeek)
推荐阅读
- azure-devops - 处理多个项目和一个团队
- java - Java 不能用 replaceAll 方法替换“{”
- csv - 当使用 node-csv-parse 时,你可以指定一些字段是文本限定的,而一些不是?
- javascript - 如何使用css或js选择animation-iteration-count的值?
- android - 在应用程序中打开时在 android?metro 打包程序错误上构建和安装 singed apk
- javascript - jquery 通过 id 选择当前正在播放的音频
- node.js - NodeJs:MongoDB:我想从 ISODate 获取日期,而不需要使用聚合的时间
- sql - 为什么我的查询什么都不返回(SQL 中的营销数据)
- php - Laravel 测试授权路由,中间件身份验证问题
- scala - 在 EPFL 并行编程示例中找不到“并行”结构