C#实现工作日的计算
2021-05-01 09:27
标签:公司 abs source 对象 json 没有 默认 param why 早就萌生了写博客的想法,一直到现在才动手,原因有多方面,归根结底就是一个字~懒。 今天无意看到一片博文,觉得里面说得几点原因很对,原文地址:我们为什么应该坚持写博客,感谢作者,让我有动力写了这篇博文。其实写博文是想记录自己遇到的一些问题的解决思路,方便以后查阅,同时希望可以跟大家一起交流提高。 先介绍下本人的基本情况,本人今年刚毕业,坐标上海,.NET 菜鸟一枚,第一次写博客,有意见欢迎大家提出,大神轻喷! 好了,废话不多说,开门见山。 最近在公司开发的系统中,需要计算工作日,就是给出一个采购周期(n天),我需要计算出在n个工作日之后的日期。开始准备去调接口(ps:找了半天发现没有太合适的,还有吐槽下国家政府单位都没有官方接口的),但是负责这个项目的大佬说,万一别个的接口崩了,会影响我们自己的系统的正常运行,自己开发还是稳点,我就写了这个功能,特此记录下实现这个功能的思路。 工作日想必大家都知道,就是除去周末和每年国务院颁布的节假日放假安排(例如:2017年部分节假日安排),其他就都是工作日(对了,差点忘记补班,这也算是工作日哦)。 “废话”说的够多了,下面撸起袖子开干吧,代码都写了注释。 提供了两个公共方法,先给大家看下简单测试的运行结果: (1).根据传入的工作日天数,获得计算后的日期 (2).根据传入的时间,计算工作日天数; 具体代码: 说明下,法定节假日我是自己用json来配置的,大家可以自己维护,或者做成自己的接口。下面展示下json的格式,这是我自己配置的(2015-2017年),大家可以按照自己的需求来修改。 好了,就说这么多,由于能力有限,有写得不好的地方,欢迎指正、补充。如果对您有帮助,请帮忙点个赞,谢谢! C#实现工作日的计算 标签:公司 abs source 对象 json 没有 默认 param why 原文地址:http://www.cnblogs.com/yuan-chong/p/HolidayHelper.html一、开发背景:
二、定义:
三、实践:
1 public class HolidayHelper
2 {
3 #region 字段属性
4 private static object _syncObj = new object();
5 private static HolidayHelper _instance { get; set; }
6 private HolidayHelper() { }
7 private static List
>(fileContent);
49 }
50 }
51 return cacheDateList;
52 }
53 ///
1 [
2 {
3 "Year": "2015",
4 "Work": [ "0104", "0215", "0228", "0906", "1010" ],
5 "Holiday": [ "0101", "0102", "0103", "0218", "0219", "0220", "0221", "0222", "0223", "0224", "0404", "0405", "0406", "0501", "0502", "0503", "0620", "0621", "0622", "0903", "0904", "0905", "0927", "1001", "1002", "1003", "1004", "1005", "1006", "1007" ]
6 },
7 {
8 "Year": "2016",
9 "Work": [ "0206", "0214", "0612", "0918", "1008", "1009" ],
10 "Holiday": [ "0101", "0207", "0208", "0209", "0210", "0211", "0212", "0213", "0404", "0501", "0502", "0609", "0610", "0611", "0915", "0916", "0917", "1001", "1002", "1003", "1004", "1005", "1006", "1007" ]
11 },
12 {
13 "Year": "2017",
14 "Work": [ "0122", "0204", "0401", "0527", "0930" ],
15 "Holiday": [ "0101", "0102", "0127", "0128", "0129", "0130", "0201", "0202", "0501", "0529", "0530", "1001", "1002", "1003", "1004", "1005", "1006" ]
16 }
17 ]
上一篇:C# EasyHook MessageBox 示例(极简而全)
下一篇:C# 函数