传入月份,返回对应月份的出勤天数(就是刨去'周末'和'法定节假日'),兄弟们怎么整? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容 #Wrapper { background-color: #e2e2e2; background-image: url("/static/img/shadow_light.png"), url("//cdn.v2ex.com/assets/bgs/circuit.png"); background-repeat: repeat-x, repeat-x; } #Wrapper.Night { background-color: #1f2e3d; background-image: url("/static/img/shadow.png"), url("//cdn.v2ex.com/assets/bgs/circuit_night.png"); background-repeat: repeat-x, repeat-x; background-size: 20px 20px, 162.5px 162.5px; }
sunziren
V2EX    程序员

传入月份,返回对应月份的出勤天数(就是刨去'周末'和'法定节假日'),兄弟们怎么整?

  •  
  •   sunziren 2020-08-03 11:19:41 +08:00 3341 次点击
    这是一个创建于 1903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有思路提供下,小弟感激不尽。

    传入的月份不会大于当前月份

    Youen
        1
    Youen  
       2020-08-03 11:31:56 +08:00   1
    把国务院每年发布的节假日安排存起来,去掉这些得到结果
    KevZhi
        2
    KevZhi  
       2020-08-03 11:32:12 +08:00 via iPhone   1
    python,请
    法定节假日可以爬百度,一点点自然语言处理
    fffang
        3
    fffang  
       2020-08-03 11:39:58 +08:00   2
    用 switch 写 12 个 case,如果传入如期就写 366 个 case
    dubenshu
        4
    dubenshu  
       2020-08-03 12:24:22 +08:00 via iPhone   1
    一天天数,周末或法定就不加,周末 js 可以 getDay,法定自己维护一套咯
    zlstll
        5
    zlstll  
       2020-08-03 12:34:24 +08:00   1
    @Youen 对的,就是这样做的
    xkzhangsan
        6
    xkzhangsan  
       2020-08-03 12:37:30 +08:00 via Android   2
    如果是 Java 语言的话,可以用 xk-time 工具。

    5.日历工具类 CalendarUtil

    包括:
    ( 1 )生成指定时间的日历(包含年、月日层级关系的日历)方法,generateCalendar* 比如 generateCalendar(int year, int month) 生成指定年月的日历。
    ( 2 )生成指定时间的日历(包含年、月和日层级关系的日历),包含农历和所有节假日信息方法,generateCalendarWithHoliday*, 比 generateCalendarWithHoliday(int year, int month, Map<String, String> localHolidayMap,Map<String, String> chineseHolidayMap, Map<String, Integer> dateTypeMap)生成指定年月的日历,包含农历和所有节假日信息,可以自定义节假日和工作日等。


    通过( 2 )方法,传入自定义工作日定义 dateTypeMap,可以生成指定年月的日历。然后统计根据返回的数据工作日标识统计工作日数量。
    xkzhangsan
        7
    xkzhangsan  
       2020-08-03 12:41:51 +08:00 via Android
    长假时会出现周末变成工作日的情况。这个需要整理出一份列表。
    realpg
        8
    realpg  
    PRO
       2020-08-03 12:56:36 +08:00   1
    手动维护个节假日表就完了……
    比什么自动化都省事
    年底维护来年的
    luckyrayyy
        9
    luckyrayyy  
       2020-08-03 12:59:03 +08:00   1
    周末好办,直接判断就行。另外我们考勤系统是这么做的,维护了一个“异常日期”列表,每年更新一下,这个列表里就是跟正常正好相反的日期,比如本来是周末,但是统一上班的那天,还有本来是工作日但是是全国放假的那天,加起来一年也就一二十天。
    wpblank
        10
    wpblank  
       2020-08-03 13:02:35 +08:00
    问小爱同学?
    xuanbg
        11
    xuanbg  
       2020-08-03 13:07:14 +08:00   1
    自己做个节假日表就行。

    别想着调什么接口,靠别人都是靠不住的。
    ETiV
        12
    ETiV  
       2020-08-03 13:09:45 +08:00 via iPhone   1
    法定节假日可以去爬飞猪啊、携程啊,这些卖机票的日历,全都帮你算好了
    xkzhangsan
        13
       2020-08-03 13:36:37 +08:00 via Android
    @luckyrayyy 确实需要这样维护,每年的都不一样,没有一劳永逸的方法
    humansjl
        14
    humansjl  
       2020-08-03 13:36:43 +08:00   1
    一张基本日历表,里面含基本工作日、休息日、国务院假日,一年更新一次,没必要爬,很多 OA 都要求 HR 年末确认次年计划的。

    再一张调整表,这个里面是单位自己的休息日工作日排班(比如适用于工厂翻班非双休日这种)。
    hinate
        15
    hinate  
       2020-08-03 13:44:55 +08:00   1
    自己维护一个表,用来存储这些节假日就可以了。
    zchlwj
        16
    zchlwj  
       2020-08-03 13:53:59 +08:00   1
    @ETiV #12 原文:“法定节假日可以去爬飞猪啊、携程啊,这些卖机票的日历,全都帮你算好了”
    ======
    回复:#12 不可靠,接口几乎年年都变,还不如自己手动维护一个,一年半个小时工作量。
    swulling
        17
    swulling  
       2020-08-03 13:54:44 +08:00   1
    每年国务院发的表都不一样,而且并没有什么规律。
    所以自己维护一套数据即可,每年加个提醒别忘了更新下一年的。

    也不需要什么爬虫,人工录入下就完了。
    hbolive
        18
    hbolive  
       2020-08-03 13:59:21 +08:00   1
    看来大家的共识就是,单独维护一张特殊日期表。。
    zhw2590582
        19
    zhw2590582  
       2020-08-03 14:21:16 +08:00   1
    只要有来源数据,基本就没难度了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2444 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:24 PVG 23:24 LAX 08:24 JFK 11:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86