我需要一个脚本,当我输入代表自星期日以来的天数的数字时,它会告诉我今天是哪一天。例如
- 0 = 周日
- 6 = 星期六
- 9 = 星期二
- 130 = 星期四
我想这需要一些 while 循环,但不知道如何开始,
答案1
这个怎么样:
#!/bin/bash
declare -A dow
dow[0]="Sunday"
dow[1]="Monday"
dow[2]="Tuesday"
dow[3]="Wednesday"
dow[4]="Thursday"
dow[5]="Friday"
dow[6]="Saturday"
echo ${dow[$(($@%7))]}
在 bash 中使用 dict 已经足够简洁了。您还可以使用 python 编写此脚本,如下所示:
#!/bin/env python
import sys
dow={}
dow[0]="Sunday"
dow[1]="Monday"
dow[2]="Tuesday"
dow[3]="Wednesday"
dow[4]="Thursday"
dow[5]="Friday"
dow[6]="Saturday"
print(dow[int(sys.argv[1])%7])
正如 Tonchev 所说,该脚本假设任何一年的第一天始终是星期日,这是从问题中得出的。但我们当然可以做得更好:
#!/bin/bash
date -d "${1}0101 +$2 days -1 day" +%A
由于我们发现date
可以做得更好,所以使用 dict 的旧脚本可以更改为:
#!/bin/bash
date -d "Sunday +$1 days" +%A
答案2
使用 GNU date
:
$ days=130
$ date -d "Sunday +$days days" "+%A"
Thursday