# -*- coding: utf-8 -*-
"""按初筛记录的口径（工作年限按 2026 年 10 月计算）重算各候选人的工作年限。

月数算式统一为：(结束年-起始年)*12 + (结束月-起始月)。
对「至今」的条目，结束点取 (2026, 10)。
对起止月份齐全的条目，同时给出两种口径：
  口径A（差值）= end - start，即初筛记录大多数条目用的口径；
  口径B（含首尾）= end - start + 1，把起止两个月本身都计入。
"""
AS_OF = (2026, 10)


def calc(a, b=None, inclusive=False):
    e = b if b else AS_OF
    m = (e[0] - a[0]) * 12 + (e[1] - a[1])
    if inclusive:
        m += 1
    return m


def fmt(m):
    return f"{m//12} 年 {m%12} 个月（{m} 个月）"


def expr(a, b=None, inclusive=False):
    e = b if b else AS_OF
    s = f"({e[0]}-{a[0]})*12 + ({e[1]}-{a[1]})"
    if inclusive:
        s += " + 1"
    return s


# (候选人, 段落说明, 起, 止；None=至今)
segs = [
    ("候选人1", "迅途供应链科技 数据分析工程师（至今）", (2022, 7),  None),
    ("候选人2", "橙仓电商 运营数据专员（全职）",         (2023, 2),  (2025, 10)),
    ("候选人2", "某咨询公司 实习生（非全职）",           (2022, 7),  (2022, 12)),
    ("候选人3", "优鲜数据 数据分析助理",                 (2019, 7),  (2021, 6)),
    ("候选人3", "惠邻超市 数据分析师",                   (2021, 5),  (2024, 3)),
    ("候选人3", "栗果电商 高级数据分析师（至今）",       (2024, 4),  None),
    ("候选人4", "青禾快消 数据分析师（全职，至今）",     (2024, 1),  None),
    ("候选人4", "青禾快消 数据分析实习生（每周3天）",    (2022, 9),  (2023, 12)),
    ("候选人4", "滨海网络 Java 开发工程师",              (2018, 7),  (2022, 8)),
    ("候选人5", "鲜丰汇超市 数据分析师（至今）",         (2020, 9),  None),
]

print("=" * 72)
for who, desc, a, b in segs:
    if b is None:
        m = calc(a)
        print(f"{who} | {desc}")
        print(f"    算式：{expr(a)} = {m} 个月 = {fmt(m)}   [口径A]")
    else:
        ma, mb = calc(a, b), calc(a, b, inclusive=True)
        print(f"{who} | {desc}")
        print(f"    算式：{expr(a, b)} = {ma} 个月 = {fmt(ma)}   [口径A]")
        print(f"          {expr(a, b, inclusive=True)} = {mb} 个月 = {fmt(mb)}   [口径B]")

print("=" * 72)
print("组合与核对（对照初筛记录写明的数字）：")

m = calc((2022, 7));               print(f"候选人1 全职数据分析：{fmt(m)}；记录写「约 4 年 3 个月」-> {'一致' if (m//12, m%12)==(4,3) else '不一致'}")

ft = calc((2023, 2), (2025, 10));  it = calc((2022, 7), (2022, 12), inclusive=True); itA = calc((2022, 7), (2022, 12))
print(f"候选人2 全职：{expr((2023,2),(2025,10))} = {ft} 个月 = {fmt(ft)}；记录写「约 2 年 8 个月」-> {'一致' if (ft//12, ft%12)==(2,8) else '不一致'}")
print(f"候选人2 实习：口径B {it} 个月（{fmt(it)}），口径A {itA} 个月（{fmt(itA)}）；记录写「6 个月」-> 采用口径B")
print(f"候选人2 合计：全职 {ft} + 实习 {it} = {ft+it} 个月 = {fmt(ft+it)}；记录写「约 3 年 2 个月」-> {'一致' if (ft+it)==38 else '不一致（口径混用：全职按A、实习按B）'}")

span = calc((2019, 7))
s1 = calc((2019, 7), (2021, 6)); s2 = calc((2021, 5), (2024, 3)); s3 = calc((2024, 4))
print(f"候选人3 跨度（2019.07 起至今）：{expr((2019,7))} = {span} 个月 = {fmt(span)}；记录写「约 7 年 3 个月」-> {'一致' if (span//12, span%12)==(7,3) else '不一致'}")
print(f"候选人3 三段直接相加：{s1}+{s2}+{s3} = {s1+s2+s3} 个月 = {fmt(s1+s2+s3)}")
ov = calc((2021, 5), (2021, 6), inclusive=True)
print(f"候选人3 重叠：优鲜（至2021.06）与惠邻（2021.05 起）重叠 {expr((2021,5),(2021,6),inclusive=True)} = {ov} 个月；跨度 {span} = 相加 {s1+s2+s3} - 重叠 {ov} - 尾月差 1")

ft = calc((2024, 1)); itB = calc((2022, 9), (2023, 12), inclusive=True); itA = calc((2022, 9), (2023, 12))
ja = calc((2018, 7), (2022, 8)); jaB = calc((2018, 7), (2022, 8), inclusive=True)
print(f"候选人4 全职数据分析：{expr((2024,1))} = {ft} 个月 = {fmt(ft)}；记录写「约 2 年 9 个月」-> {'一致' if (ft//12, ft%12)==(2,9) else '不一致'}")
print(f"候选人4 实习：口径B {itB} 个月（{fmt(itB)}），口径A {itA} 个月（{fmt(itA)}）；记录写「约 1 年 4 个月」-> 采用口径B")
print(f"候选人4 Java：口径A {ja} 个月（{fmt(ja)}），口径B {jaB} 个月（{fmt(jaB)}）；记录写「约 4 年 1 个月」-> 采用口径A（同一行内与实习口径不一致）")

m = calc((2020, 9));               print(f"候选人5 全职数据分析：{expr((2020,9))} = {m} 个月 = {fmt(m)}；记录写「约 6 年 1 个月」-> {'一致' if (m//12, m%12)==(6,1) else '不一致'}")
