这个挺难,但tg神人辈出,我还是来问问!算法相关!

  • s
    sunjianxi
    有达人能解出来吗? C#,算法问题: 1,日期a,日期b 2,节假日x,节假日y 3,夜班时间20:00——6:00 能帮我用一个算法或现成方法算出四段时间吗? 第一段,a,b时间段之间,非节假日,非夜班的时间长度; 第二段,a,b时间段之间,节假日非夜班时间长度; 第三段,a,b时间段之间,夜班非节假日时间长度; 第四段,a,b时间段之间,既是节假日又是夜班的时间长度。 如果觉得这东西太简单不是算法的话,就动手算算。好像也不是那么简单么~ [本帖最后由 sunjianxi 于 2010-3-2 17:55 编辑]

    本帖最后由 sunjianxi 于 2010-3-3 08:17 通过手机版编辑
  • d
    darkgame
    请楼猪不要侮辱"算法"
    你这个顶多是加减法
  • p
    peanut
    算加班工资的?
  • c
    cc0128
  • s
    sunjianxi
    要考虑节假日和夜班的重合情况,多少有算法在里面。话说回来,这加减法,你会吗??
  • s
    sunjianxi
    顶!说不是算法的那位缩哪去了?
  • 吥喓遺莣
    需要自己写个统计工作日的函数(如EXCLE中的WorkDay函数),很简单,就是把区间内的每天都检查一遍。

    第一段,a,b时间段之间,非节假日,非夜班的时间长度;
    14*WorkDay

    第二段,a,b时间段之间,节假日非夜班时间长度;
    14 *(AllDay - WorkDay)

    第三段,a,b时间段之间,夜班非节假日时间长度;
    10 * WorkDay

    第四段,a,b时间段之间,既是节假日又是夜班的时间长度。
    10 *(AllDay - WorkDay)

    好像没算法,只是乘法。
  • n
    nmlb
    乘法也是算法的一种
  • k
    kds168
    ?:=

    &&
    ||
  • a
    askysolid
    business day的計算本質上也算是入門算法的一部分。
    這個問題用c#解決最簡單的方法是你找個日期表,里面有你所要求日期內所有的節假日。后面就好辦了。
  • v
    viperking
    算法与语言无关 谢谢
  • N
    Nothing
    这里面最难的就是写一个几月几号是礼拜几的函数(网上应该有,也能自己推)
  • :C
  • 分不清雨水泪水
    蔡勒公式秒掉
  • l
    lobydenk
    总日数 = b.dateOfYear - a.dateOfYear
    a,b定了.节假日多少也定了,先统计节假日数,星期六日用C#很简单,其它假期导入一下,
    个人理解,非夜班时间就是14小时,夜班就是10小时吧?
    对问题不是很理解,随便说说
    1就是 14 * (总日数 - 节假日数)
    2就是 14 * 节假日数
    3就是 10 * (总日数 - 节假日数)
    4就是 10 * 节假日数
  • 火星羊
    二楼美系列
  • m
    millionare
    学了四年计算机却想不明白怎么做的废柴四大路过。。。
  • F
    FoxfoO
    写过一个类似的东西
    一个线段AB、其中有一些段是无效段,得出AB间有效区段的长度。比如线段ACDEFB,其中CD、EF段是无效段,求AB间有效段的长度。
    如果lz要的话我去找找看。