据我们所知,每个月每个月的最大日数如下:
Jan - 31 days Feb - 28 days / 29 days (leap year) Mar - 31 days Apr - 30 days May - 31 days Jun - 30 days Jul - 31 days Aug - 31 days Sep - 30 days Oct - 31 days Nov - 30 days Dec - 31 days
如何得到bash返回当前年度的值(每个月的最后一天),而不使用if或switch或while循环?
我的采取
for m in {1..12}; do date -d "$m/1 + 1 month - 1 day" "+%b - %d days"; done
要解释:对于m = 1的第一次迭代,-d参数是“1/1 1个月 – 1天”,“1/1”被解释为1月1日.所以1月1日1月 – 1日是1月31日.下一次迭代“2/1”是2月1日,添加一个月减去一天,以获得2月28日或29日.