【问题标题】:c# time-slot calculation (today-givenDate)c# 时隙计算(today-givenDate)
【发布时间】:2012-06-09 11:39:14
【问题描述】:

我正在准备一个计算图书馆惩罚的课程。例如: 我有一本书。我将在 2009 年 11 月 12 日归还这本书。但是我推迟了这个返回日期。我于 2009 年 11 月 30 日归还了这本书。我会以金钱的形式支付罚金。 如何在 c# 上计算(11 月 31 日 - 11 月 12 日)?

应仅计算工作日的罚款。这意味着我的计算应该考虑到周末和国定假日。

    <Holiday Date="25.11.2009"/>
    <Holiday Date="26.11.2009"/>
    <Holiday Date="27.11.2009"/>

【问题讨论】:

  • 我不知道。我是 C# 新手。
  • 您要计算两个日期之间的工作日(非周末)天数。 - Calculate the number of business days between two dates? 的可能重复项
  • 我认为您的第一步应该是尝试自己解决问题,然后在遇到更具体的问题时再回来。 Stack Overflow 是一个帮助您绕过路障的好地方——它并不是要为您开车全程。

标签: c# .net datetime dayofweek


【解决方案1】:
public int CountBusinessDaysBetween(DateTime start, DateTime end) {
    int days = end.Subtract(start).Days;
    return Enumerable.Range(0, days)
                     .Select(day => start.AddDays(day))
                     .Where(date => date.IsBusinessDay())
                     .Count();
}

当然,必须自己编码IsBusinessDay。我不知道你对工作日的定义是什么。它是高度本地化的。

另外,我不知道您是否要包含在内,因此您可能需要在 days 的定义上加上 + 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多