我在CSV文件中计算出生日期的参与者年龄。我正在使用此代码,我将DOB与当前系统时间进行比较并计算年龄:
echo "Dave,ws245f,09/12/1982"|awk -F'/|,' '{b=mktime($5" "$4" "$3" 00 00 00 00");a=(systime()-b)/(365*24*60*60);a=a==int(a)?a:int(a)+1;print $0","a}'
输出
Dave,ws245f,09/12/1982,31
期望输出
Dave,ws245f,09/12/1982,30
注意:用户在12月12日之前不是30 dd / mm / yyyy,所以这个问题是错误的。请帮忙!
答案 0 :(得分:1)
试试这个:
echo "Dave,ws245f,09/12/1982"|awk -F'/|,' '{b=mktime($5" "$4" "$3" 00 00 00 00");a=(systime()-b)/(365*24*60*60);a+=a<0?-0.5:0.5;a=int(a);print $0","a}'
答案 1 :(得分:1)
如何用a=a==int(a)?a:int(a)+1
替换a=a==int(a)?a:int(a)
呢?如果你有0。5年,你没有1年但是0年(和6个月)
这意味着你可以说:a=int(a)