csharp 日期时间迭代器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 日期时间迭代器相关的知识,希望对你有一定的参考价值。
namespace extensions {
using System;
using System.Collections.Generic;
public static class DateTimeExtension {
public static int ToRowNumber(this DateTime datetime) {
int row;
row = (datetime.Day - 1) * 24 + datetime.Hour;
return row;
}
public static IEnumerable<DateTime> IterateHours(this DateTime datetime) {
for (var h = 0; h < 24; h++) {
yield return datetime.AddHours(h);
}
}
public static IEnumerable<DateTime> IterateHoursInMonth(this DateTime datetime) {
var item = datetime;
yield return datetime;
while (item.AddHours(1).Month.Equals(datetime.Month)) {
item = item.AddHours(1);
yield return item;
}
}
public static IEnumerable<DateTime> IterateHoursInMonth(this DateTime datetime, DateTime enddatetime) {
var item = datetime;
yield return datetime;
while (item.AddHours(1).Month.Equals(datetime.Month) && item.AddHours(1) < enddatetime) {
item = item.AddHours(1);
yield return item;
}
}
public static IEnumerable<DateTime> IterateDaysInMonth(this DateTime datetime) {
for (var i = datetime.Day; i <= DateTime.DaysInMonth(datetime.Year, datetime.Month); i++) {
var day = new DateTime(datetime.Year, datetime.Month, i);
yield return day;
}
}
}
}
以上是关于csharp 日期时间迭代器的主要内容,如果未能解决你的问题,请参考以下文章
csharp 设计模式 - 行为 - 迭代器
csharp C#字典迭代器
csharp 使用迭代器IEnumerable行读取文件&生成数字
由 itertools.groupby() 生成的迭代器被意外消耗
Python3 迭代器与生成器
检测bootstrap-vue日期选择器中v-for中每个元素的目标