获取给定开始日期和结束日期之间的每月工作日

内存

我需要编写一个方法,在其中我将传递开始日期和结束日期。输出应该是带有两个参数的列表。一个是月份名称,另一个是该月的工作日数。(去除坐姿和太阳)

请指教。

public List<MonthDaysData> GetMonthwiseWorkingdays(DateTime? start, DateTime? end)
{
List<MonthDaysData> monthdays = new List<MonthDaysData>();

// Coding to get the output
return monthdays;
}

public class MonthDaysData 
{ 
  public Int32? Month { get; set; } 
  public Int32? days { get; set; } 
} 
克里斯蒂安德夫

您可以使用扩展方法来获取像这样的值...

public static class Extensions
{
    public static List<MonthDaysData> GetWorkingDaysPerMonthTo(this DateTime from, 
                         DateTime to)
    {
        var workings = new Dictionary<int, int>();
        var currentDateTime = from;

        while (currentDateTime <= to)
        {
            if (currentDateTime.DayOfWeek != DayOfWeek.Saturday 
                                  && currentDateTime.DayOfWeek != DayOfWeek.Sunday 
                                  && !currentDateTime.IsHoliday("CountryCode"))
                if (!workings.ContainsKey(currentDateTime.Month))
                    workings.Add(currentDateTime.Month, 1);
                else
                {
                    int curWork;
                    workings.TryGetValue(currentDateTime.Month, out curWork);
                    curWork++;
                    workings.Remove(currentDateTime.Month);
                    workings.Add(currentDateTime.Month, curWork);
                }

            currentDateTime = currentDateTime.AddDays(1);
        }
        return workings.Select(work => new MonthDaysData {Month = work.Key, 
                                                       days = work.Value}).ToList();
    } 

    public static bool IsHoliday(this DateTime date, string countryCode)
    {
        // some service that takes a country code and 
        // returns true/false if its a holiday
        return false;
    }
}

然后,您可以从任何地方调用它,例如...

var today = new DateTime(2014, 10, 16);
var dates = today.GetWorkingDaysPerMonthTo(new DateTime(2014, 12, 16));

但是,这只是将工作日作为工作日,您需要检查公共假期等。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取给定开始日期和结束日期的日期列表

来自分类Dev

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

来自分类Dev

获取给定开始日期,结束日期和星期几的日期

来自分类Dev

如何在PL / pgSQL中根据开始日期和持续时间(工作日)获取结束日期?

来自分类Dev

在开始日期和结束日期之间获取每月的第三个星期六

来自分类Dev

计算开始日期和当前日期之间的工作日

来自分类Dev

根据给定的月份开始工作日查找日期的工作日

来自分类Dev

在Android中获取工作日和以下日期的日期

来自分类Dev

从给定的开始日期获取结束日期基准

来自分类Dev

计算不包括开始日期的工作日,并在busday_count中包括结束日期

来自分类Dev

如何将具有开始日期和结束日期的现有表加入现有日历表以计算工作日

来自分类Dev

如何根据工作日的开始日期、劳动力和预算工时返回预测日期?

来自分类Dev

获取给定月份的所有日期和日期

来自分类Dev

给定开始日期和结束日期,请调整/扩展每天之间(连续一天)的数据

来自分类Dev

在给定集合的开始日期和结束日期之间进行猫鼬查询

来自分类Dev

计算PHP中给定开始日期和结束日期之间的天数

来自分类Dev

如何在给定的开始日期和结束日期之间的数组中添加缺失的数据条目

来自分类Dev

如何获取开始日期和结束日期之间的每周日期

来自分类Dev

获取开始日期和结束日期之间的日期数组

来自分类Dev

快速从数组中获取开始日期和结束日期之间的日期

来自分类Dev

Excel- VBA:给定开始日期和结束日期,请创建两个日期之间的日期数组

来自分类Dev

将2个给定日期之间的天数拆分为特定的批次大小,并相应地获取开始日期和结束日期

来自分类Dev

计算从第二天开始的日期之间的工作日

来自分类Dev

给定多个工作日作为输入,计算两个日期之间的“实际”天数

来自分类Dev

工作日之间的日期时间返回日期

来自分类Dev

雄辩的:检查日期是否在开始日期和结束日期之间

来自分类Dev

MySQL日期介于事件的开始日期和结束日期之间

来自分类Dev

两个日期之间的开始日期和结束日期

来自分类Dev

检索日期在开始日期和结束日期之间的记录

Related 相关文章

  1. 1

    获取给定开始日期和结束日期的日期列表

  2. 2

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

  3. 3

    获取给定开始日期,结束日期和星期几的日期

  4. 4

    如何在PL / pgSQL中根据开始日期和持续时间(工作日)获取结束日期?

  5. 5

    在开始日期和结束日期之间获取每月的第三个星期六

  6. 6

    计算开始日期和当前日期之间的工作日

  7. 7

    根据给定的月份开始工作日查找日期的工作日

  8. 8

    在Android中获取工作日和以下日期的日期

  9. 9

    从给定的开始日期获取结束日期基准

  10. 10

    计算不包括开始日期的工作日,并在busday_count中包括结束日期

  11. 11

    如何将具有开始日期和结束日期的现有表加入现有日历表以计算工作日

  12. 12

    如何根据工作日的开始日期、劳动力和预算工时返回预测日期?

  13. 13

    获取给定月份的所有日期和日期

  14. 14

    给定开始日期和结束日期,请调整/扩展每天之间(连续一天)的数据

  15. 15

    在给定集合的开始日期和结束日期之间进行猫鼬查询

  16. 16

    计算PHP中给定开始日期和结束日期之间的天数

  17. 17

    如何在给定的开始日期和结束日期之间的数组中添加缺失的数据条目

  18. 18

    如何获取开始日期和结束日期之间的每周日期

  19. 19

    获取开始日期和结束日期之间的日期数组

  20. 20

    快速从数组中获取开始日期和结束日期之间的日期

  21. 21

    Excel- VBA:给定开始日期和结束日期,请创建两个日期之间的日期数组

  22. 22

    将2个给定日期之间的天数拆分为特定的批次大小,并相应地获取开始日期和结束日期

  23. 23

    计算从第二天开始的日期之间的工作日

  24. 24

    给定多个工作日作为输入,计算两个日期之间的“实际”天数

  25. 25

    工作日之间的日期时间返回日期

  26. 26

    雄辩的:检查日期是否在开始日期和结束日期之间

  27. 27

    MySQL日期介于事件的开始日期和结束日期之间

  28. 28

    两个日期之间的开始日期和结束日期

  29. 29

    检索日期在开始日期和结束日期之间的记录

热门标签

归档