jiobanma
V2EX  ›  Java

求个 Java 工具类(计算两个时间内的自然周数)

  •  
  •   jiobanma ·
    banmajio · Oct 29, 2021 · 3840 views
    This topic created in 1840 days ago, the information mentioned may be changed or developed.

    周六开始 也算一周,截至到周一 也算一周 算自然周的个数,而不是相差周的个数

    麻了

    13 replies  •  2021-11-08 11:11:43 +08:00
    frandy
    frandy
    Oct 29, 2021
    1
    算天数,然后除以 7 不行么
    Junzhou
    Junzhou
    Oct 29, 2021
    2
    我寻思这玩意写起来有啥难度的。。。
    aircjm
    aircjm
    Oct 29, 2021 via Android
    3
    这个难点在哪里啊 说说呢 阻挡你写代码的问题是什么
    Hyduan
    Hyduan
    Oct 29, 2021
    4
    @frandy “算自然周的个数,而不是相差周的个数” 直接除 7 不对吧
    Junzhou
    Junzhou
    Oct 29, 2021
    5
    只要算出第一天是周几,剩下的直接模拟就完事了。
    err1y
    err1y
    Oct 29, 2021 via iPhone
    6
    ((开始时间戳-结束时间戳)/一天的秒数 +6 )/7
    uyZL3221XZ2xGZ3D
    uyZL3221XZ2xGZ3D
    Oct 29, 2021
    7
    其中一种情况:找到第一个周末,找到最后一个周一,中间有 n 天, 加起来共 n / 2 + 1 + 1 。
    再把另几种情况算算就差不多了。
    albertni
    albertni
    Oct 30, 2021 via Android
    8
    先算有几个 7 天(整周),然后如果结束日期的 weekday 比开始日期小就加一周
    albertni
    albertni
    Oct 30, 2021 via Android
    9
    @albertni 补充一下,还要把开始日期所在的周加进去,就是固定要再加一周。
    举例:
    周三到周六,经过 0 个整周,6>3 所以+0 ,再加开始日所在的 1 周,共覆盖 0+0+1=1 周
    周六到周三,经过 0 个整周,3<6 加 1 周,再加开始周,共覆盖 0+1+1=2 周
    周二到 3 周后的周五就是 3+0+1 覆盖了 4 周
    以此类推
    Zien
    Zien
    Oct 30, 2021
    10
    看半天不太懂,就是两个时间之间的存在多个自然周(头尾 inclusive )?
    如果这样的话,先求结束日期所在的那个星期的星期一 endMonday (假设星期一为每周第一天),
    然后用(endMonday - 开始日期 + 6) / 7 + 1 就是结果了。
    v2dev
    v2dev
    Oct 30, 2021 via iPhone
    11
    天数除以 7 ,然后向上取整
    zxCoder
    zxCoder
    Oct 30, 2021 via Android
    12
    (这不是随便一个大学 acm 校赛的签到题
    luckyone
    luckyone
    Nov 8, 2021
    13
    @zxCoder dna 动了,是签到题的感觉
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4435 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 08:56 · PVG 16:56 · LAX 00:56 · JFK 03:56
    ♥ Do have faith in what you're doing.