0

重複の可能性:
bash 人の年齢を計算し、csv ファイルに読み込みますか?

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 日 dd/mm/yyyy まで 30 歳ではないため、計算が間違っています。助けてください!

4

2 に答える 2

1

で置き換えるa=a==int(a)?a:int(a)+1のはa=a==int(a)?a:int(a)どうですか?0.5 年がある場合、1 年ではなく 0 年 (および 6 か月) があります。

つまり、次のように言えます。a=int(a)

于 2013-01-16T18:52:25.643 に答える
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}'
于 2013-01-16T18:29:56.160 に答える