我正在创建一个用户界面,允许用户选择日期范围,并勾选或取消勾选在日期范围内应用的星期几.
日期范围控件是DateTimePickers
,以及星期几CheckBoxes
这是UI的模型:
From Date: (dtpDateFrom)
To Date: (dtpDateTo)
[y] Monday, [n] Tuesday, [y] Wednesday, (etc)
什么是显示总计数天数的最佳方式,不仅基于日期范围,还基于一周的选定日期(或选定日期)?
循环过日期范围是我唯一的选择吗?
这是我如何接近它:
作为伪代码:
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
Run Code Online (Sandbox Code Playgroud)
无论开始和结束日期相隔多远,这都需要一段时间.
实现此算法的细节取决于您使用的语言和库.在可能的情况下,我使用C++和boost :: date_time来做这种事情.