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

Bash年龄计算程序添加足月足天计算功能咨询

Bash脚本新增足月/足天计算实现说明

需补充的核心判断逻辑

你可以在原有周岁计算的基础上,新增两类计算逻辑,不需要额外引入复杂依赖:

  • 足月计算:
    先算基础足月数 = 年差 * 12 + (当前月份 - 出生月份)
    补充判断:如果当前日期 < 出生日期,足月数减1即可,判断逻辑和原有周岁减1逻辑完全对齐,无需额外处理月份天数、闰年问题。
  • 足天计算:
    不需要手动判断各月天数、闰年差异,直接将出生日期和当前日期都转为Unix时间戳(秒级时间戳,从1970年1月1日起的总秒数),二者差值除以86400(一天的总秒数)后取整,就是准确的足天数值。

修改后完整可运行代码

echo "请输入出生年份"
read a_nac

echo "请输入出生月份"
read m_nac

echo "请输入出生日期"
read d_nac

echo "-----------出生日期---------"
echo $a_nac 年 $m_nac 月 $d_nac 日

a_act=$(date +%Y)
m_act=$(date +%m)
d_act=$(date +%d)

echo "-----------当前日期-------------"
echo $a_act 年 $m_act 月 $d_act 日

# 原有周岁计算逻辑
edad=$(( a_act - a_nac ))
if [ $m_act -lt $m_nac ]; then
    ((edad--))
elif [ $m_nac -eq $m_act -a $d_act -lt $d_nac ]; then
    ((edad--))
fi

# 新增足月计算逻辑
full_months=$(( (a_act - a_nac) * 12 + m_act - m_nac ))
if [ $d_act -lt $d_nac ]; then
    ((full_months--))
fi

# 新增足天计算逻辑
# 转时间戳计算,自动处理闰年、月份天数差异
ts_birth=$(date -d "$a_nac-$m_nac-$d_nac" +%s)
ts_now=$(date +%s)
full_days=$(( (ts_now - ts_birth) / 86400 ))

echo "-----------计算结果-------------------"
echo "周岁年龄:$edad 岁"
echo "出生至今足月:$full_months 个月"
echo "出生至今足天:$full_days 天"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:09:04