获取日期范围内的季节

弗兰克·格雷奇

我需要输入2个代表日期范围的日期。对于这些给定的日期,我需要返回这些日期之间的季节列表。是否有可能不需要在该范围内的所有日期之间进行迭代的解决方案?

例如日期:25/12/2014-17/7/
2015结果将是:Winter,Spring,Summer


季节将以恒定值“
季节”指定

  • 冬季:12月21日-3月20日
  • 春季:3月21日-6月20日
  • 夏季:6月21日-9月20日
  • 秋季:9月21日至12月21日

例如,常量将如下存储。我发现的主要问题是冬季,因为一年将增加一年,而月份将从1开始。

    DateTimeOffset winterStart= new DateTimeOffset(year, 12, 21,0,0,0,new TimeSpan(0));
    DateTimeOffset winterEnd = new DateTimeOffset(year, 03, 19, 0, 0, 0, new TimeSpan(0));

    DateTimeOffset springStart = new DateTimeOffset(year, 03, 20,0,0,0,new TimeSpan(0));
    DateTimeOffset springEnd = new DateTimeOffset(year, 06, 19, 0, 0, 0, new TimeSpan(0));

    DateTimeOffset summerStart = new DateTimeOffset(year, 06, 20, 0, 0, 0, new TimeSpan(0));
    DateTimeOffset summerEnd = new DateTimeOffset(year, 09, 21, 0, 0, 0, new TimeSpan(0));

    DateTimeOffset autumStart = new DateTimeOffset(year, 09, 22, 0, 0, 0, new TimeSpan(0));
    DateTimeOffset autumEnd = new DateTimeOffset(year, 12, 20, 0, 0, 0, new TimeSpan(0));
伊格鲁·格雷格

如果使用给定季节的特定日期范围,则无需每天检查范围内的日期;我认为应该每3个月执行一次,例如

// get start and end as DateTime

int year;
DateTime springStart, summerStart, autumnStart, winterStart;

for (DateTime date = start; date < end; date = date.AddMonths(3))
{ 
    year = date.Year;
    springStart = new DateTime(year, 3, 21);
    //etc...
    if (date >= springStart && date < summerStart)
    { //etc...}
    else if (date >= winterStart || date < springStart)
    { //etc...}
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取日期范围内的扣除结果

来自分类Dev

获取日期范围内的数组元素

来自分类Dev

获取日期范围内的数组元素

来自分类Dev

获取日期范围内的of日数量

来自分类Dev

获取日期范围内的扣除结果

来自分类Dev

python获取日期,如果它在日期范围内

来自分类Dev

使用JavaScript获取日期范围内的特定日期

来自分类Dev

获取录入日期在一定范围内的记录

来自分类Dev

获取特定日期范围内的结果

来自分类Dev

获取日期范围内的所有行的列表

来自分类Dev

获取录入日期在一定范围内的记录

来自分类Dev

Android SQLLITE查询以获取特定范围内的日期值

来自分类Dev

仅获取某个日期范围内的可用产品

来自分类Dev

无法获取在特定日期范围内创建的工件

来自分类Dev

获取每个 ID 组范围内的最后日期

来自分类Dev

如何获取日期范围内的数据总和

来自分类Dev

SQL 从日期范围内每天获取数据

来自分类Dev

标记范围内的日期

来自分类Dev

日期范围内的天数

来自分类Dev

查找日期在范围内

来自分类Dev

在日期范围内搜索

来自分类Dev

获取给定日期范围内的月份的开始日期和结束日期

来自分类Dev

查找日期范围内的可用日期

来自分类Dev

检查日期是否在日期范围内

来自分类Dev

查找日期范围内的可用日期

来自分类Dev

处理日期范围内的NULL日期

来自分类Dev

过滤或检查日期范围内的日期

来自分类Dev

给定一个范围,在Scala中获取该范围内的所有日期

来自分类Dev

获取给定范围内所有日期的结果,包括不存在的日期