gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:57:15 27 4
gpt4 key购买 nike

我正在创建一个 UI,允许用户选择一个日期范围,然后勾选或取消勾选该日期范围内适用的星期几。

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

这是 UI 的模型:

开始日期:(dtpDateFrom)
截止日期:(dtpDateTo)

[y] 星期一,[n] 星期二,[y] 星期三,(等等)

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

遍历日期范围是我唯一的选择吗?

最佳答案

以下是我的处理方式:

  • 查找第一个和最后一个日期的星期几 (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 来处理这类事情。

关于.net - 给定一个日期范围(开始日期和结束日期),我如何计算天数,不包括 .Net 中一周中的指定天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/132507/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com