当前位置:  开发笔记 > 人工智能 > 正文

给定日期范围(开始日期和结束日期),我如何计算天数,不包括.Net中指定的星期几?

如何解决《给定日期范围(开始日期和结束日期),我如何计算天数,不包括.Net中指定的星期几?》经验,为你挑选了1个好方法。

我正在创建一个用户界面,允许用户选择日期范围,并勾选或取消勾选在日期范围内应用的星期几.

日期范围控件是DateTimePickers,以及星期几CheckBoxes

这是UI的模型:

From Date: (dtpDateFrom)
To Date: (dtpDateTo)

[y] Monday, [n] Tuesday, [y] Wednesday, (etc)

什么是显示总计数天数的最佳方式,不仅基于日期范围,还基于一周的选定日期(或选定日期)?

循环过日期范围是我唯一的选择吗?



1> ravenspoint..:

这是我如何接近它:

查找第一个和最后一个日期的星期几(dow)

将第一天向前移动到与上次相同的道路.存储的移动天数

计算第一个和最后一个之间的周数

计算一周中包含的天数*周数+包含的天数

作为伪代码:

 moved = start + end_dow - start_dow
 extras = count included days between start and moved
 weeks = ( end - moved ) / 7
 days = days_of_week_included * weeks + extras

无论开始和结束日期相隔多远,这都需要一段时间.

实现此算法的细节取决于您使用的语言和库.在可能的情况下,我使用C++和boost :: date_time来做这种事情.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有