zoukankan      html  css  js  c++  java
  • 请假时碰到法定假期,实际请假几天?

    去面试,问了一个问题:

    员工请假了几天,刚好这几天与法定节假日有重合,那么法定节假日那几天就不算请假,请问重合的天数有几天(或者说实际请假几天)

    让在白板上写代码,居然脑子也白了……

    一出门就清醒了,方案就出来,可惜晚了

    require 'date'
    
    #方法一,通过间断节假日是否在请假区间内,计算出与节假日重合的开始和结束日期
    def calc_date(holiday_start,holiday_end, leave_start, leave_end)
        holiday_region = holiday_start..holiday_end
    
        if holiday_region.include? leave_start or holiday_region.include? leave_end
            d1 = holiday_start > leave_start ? holiday_start : leave_start;
            d2 = holiday_end > leave_end ? leave_end : holiday_end;
            return (d2-d1).to_i + 1
        end
        0
    end
    
    #方法二.直接求两个区间的交集,看交集有几个元素就是几天
    def calc_date2(holiday_start,holiday_end, leave_start, leave_end)
        leave = holiday_start..holiday_end
        holiday = leave_start..leave_end
        (holiday.to_a & leave.to_a).length
    end
    
    #假期起始
    holiday_start = Date.new(2015,9,22)
    holiday_end = Date.new(2015,9,25)
    #请假起始
    leave_start = Date.new(2015,9,23)
    leave_end = Date.new(2015,9,24)
    
    puts calc_date(holiday_start,holiday_end, leave_start, leave_end)
    puts calc_date2(holiday_start,holiday_end, leave_start, leave_end)
  • 相关阅读:
    Android学习之adb异常处理
    Android学习之多触点滑动
    RN animated帧动画
    RN animated组动画
    RN animated缩放动画
    RN Animated透明度动画
    Eclipse ADT中的logcat不显示解决方法
    RadioButton使用
    PropTypes使用
    SegmentedControlIOS使用
  • 原文地址:https://www.cnblogs.com/varlxj/p/4499027.html
Copyright © 2011-2022 走看看