asp.net - 我想根据日期时间过滤数据(行)
问题描述
我想在日期时间列的基础上过滤我的数据(行)。例如,当日期时间列是 00:00:00.000 时间的最后一个日期(31/30)时,我想要数据(行)。
我有一个数据文件,其中有一列包含 2018-10-28 00:56:98.003 之类的数据,并且希望在 00:00:00.000 获得该月最后一天的数据。 该图像显示了我拥有的示例数据库,我必须根据月份最后一个日期(31,30,28)的 TimeCol(列名) 过滤数据,然后在过滤数据后我想执行一些算术对其进行操作
解决方案
这很容易,这一步会带你知道当前行的当前月末。然后使用 LINQ -> Where(..) 扩展方法进行过滤。这是示例:
public class Row
{
public string Id { get; set; } = Guid.NewGuid().ToString();
public string Data { get; set; }
public DateTime DateTime { get; set; }
}
List<Row> rows = new List<Row>
{
new Row
{
Data = "Data 1",
DateTime = new DateTime(2019,1,21,21,10,0)
},
new Row
{
Data = "Data 2",
DateTime = new DateTime(2019,1,1,23,0,0)
},
new Row
{
Data = "Data 3",
DateTime = new DateTime(2019,2,28,0,0,0)
},
new Row
{
Data = "Data 4",
DateTime = new DateTime(2019,3,14,13,15,12)
},
new Row
{
Data = "Data 5",
DateTime = new DateTime(2019,07,31,21,10,0)
},
new Row
{
Data = "Data 6",
DateTime = new DateTime(2019,06,30,0,0,0)
}
};
List<Row> filteredRows = rows.Where(row =>
{
//This functions used to get the last day in a month
int endOfMonth = DateTime.DaysInMonth(row.DateTime.Year, row.DateTime.Month);
return (
row.DateTime.Day == endOfMonth &&
row.DateTime.Hour == 0 &&
row.DateTime.Minute == 0 &&
row.DateTime.Second == 0 &&
row.DateTime.Millisecond == 0
);
}).ToList();
filtersRws 变量将包含数据 ->“数据 3”和“数据 6”。
问候,
米尔扎
推荐阅读
- html - 调整视差上的叠加层大小时出现问题
- laravel - laravel api 验证自定义消息
- css - 在 LESS 循环中为输出转义 et 字符 (&)
- javascript - 如何从一个组件单击按钮运行一个功能,并在反应原生的另一个组件上运行功能
- java - 使用 PDF Stamper 对具有数字签名的 PDF 进行密码保护
- amazon-web-services - 如何将 s3 存储桶文件复制到 Kubernetes 运行的 Pod 中?
- html - 如何在另一个 div 的中心对齐一个 div
- python - 慢速和快速 pandas 函数(在两列中添加字符串)
- javascript - 我如何通过 contenteditable 制作一个简单的编辑器,但没有执行命令
- frontend - 如何为 Strapi CMS 更改 Netlify CMS?