使用 date(1) 将整数转换为星期几

Ber*_*lcı 1 shell date

使用date,我可以将周数转换为 1 到 7 之间的整数,例如:

$ date -d "Thursday" +%u
4
Run Code Online (Sandbox Code Playgroud)

但是如果我想执行反向操作呢?就像是,

$ date [options] [+format]
Thursday
Run Code Online (Sandbox Code Playgroud)

如果不能使用 date 也没关系,我也可以使用其他程序。这里力求简洁。

don*_*sti 5

您可以获得下周日的日期,添加N天数并打印该特定日期的日期名称:

getdayname () {
nextplus=$(date -d "next Sunday +$1 days")
date -d "${nextplus}" '+%A'
}
Run Code Online (Sandbox Code Playgroud)

并运行getdayname 2getdayname 7等等(假设gnu date)。
或者简单地使用一个数组而不使用date例如

getdayname () {
local days=( Sunday Monday Tuesday Wednesday Thursday Friday Saturday )
printf %s\\n ${days[$1]}
}
Run Code Online (Sandbox Code Playgroud)

尽管使用bash/ksh您需要printf %s\\n "${days[$1-1]}"(因为索引从 开始0),并且需要引号以避免 split+glob (也使用yash)。