You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术需求:当入院日期大于出院日期时互换日与月

日期调整解决方案

规则明确

  • 当入院日期晚于出院日期时,互换该入院日期的日与月;若入院日期早于或等于出院日期,保持原日期不变。
  • 注:需先将日期字符串转换为标准日期对象进行先后判断,避免因格式歧义(如04/11/2021可理解为4月11日或11月4日)导致错误。

示例验证

入院日期:04/11/2021(按月/日/年解析为2021年11月4日)
出院日期:13/4/2021(按日/月/年解析为2021年4月13日)
由于2021年11月4日晚于2021年4月13日,互换入院日期的日和月,得到调整后日期:11/04/2021(对应2021年4月11日)

给定数据处理结果

出院日期统一为13/4/2021,转换为标准日期为2021-04-13,以下是6条入院日期的调整结果:

  • 原入院日期:04/11/2021 → 调整后:11/04/2021
  • 原入院日期:04/12/2021 → 调整后:12/04/2021
  • 原入院日期:04/10/2021 → 调整后:10/04/2021
  • 原入院日期:13/04/2021 → 调整后:13/04/2021(与出院日期相等,无需调整)
  • 原入院日期:13/04/2021 → 调整后:13/04/2021(与出院日期相等,无需调整)
  • 原入院日期:04/12/2021 → 调整后:12/04/2021

通用代码实现(Python)

from datetime import datetime

def adjust_admission_date(admission_str, discharge_str):
    # 解析出院日期,兼容单数字月/日格式
    discharge_parts = discharge_str.split('/')
    discharge_padded = '/'.join([part.zfill(2) for part in discharge_parts])
    discharge_date = datetime.strptime(discharge_padded, "%d/%m/%Y")
    
    # 解析入院日期的两种可能格式
    admission_padded = '/'.join([part.zfill(2) for part in admission_str.split('/')])
    adm_dmy = datetime.strptime(admission_padded, "%d/%m/%Y")
    adm_mdy = datetime.strptime(admission_padded, "%m/%d/%Y")
    
    # 判断是否需要调整
    if adm_mdy > discharge_date:
        return adm_mdy.strftime("%d/%m/%Y")
    else:
        return admission_str

# 批量处理给定数据
discharge_date = "13/4/2021"
admission_list = ["04/11/2021", "04/12/2021", "04/10/2021", "13/04/2021", "13/04/2021", "04/12/2021"]

for adm in admission_list:
    print(f"原日期: {adm} → 调整后: {adjust_admission_date(adm, discharge_date)}")

内容的提问来源于stack exchange,提问作者Abdulsalam Elnaeem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:10:42