Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得给定年份的第一天';Bash Shell中的星期几?_Bash_Date_Scripting - Fatal编程技术网

如何获得给定年份的第一天';Bash Shell中的星期几?

如何获得给定年份的第一天';Bash Shell中的星期几?,bash,date,scripting,Bash,Date,Scripting,我有一个bash脚本,我试图在这一年中通过,并获得当年1月1日这一周的第一天 我已尝试使用date命令: yearsago=$(( 2021 - year)) date --date="$(date +'%Y-%m-01') - ${yearsago} year " 不走运。例如,如果我输入年份:2020作为变量。它应该找到当年的第一天,即1月1日,并找到2020年1月1日的一周中的哪一天 输出为如果星期一打印“1”,如果星期二打印“2” 多谢各位 获得当年1月1日这一周的

我有一个bash脚本,我试图在这一年中通过,并获得当年1月1日这一周的第一天

我已尝试使用date命令:

yearsago=$(( 2021 - year))
date --date="$(date +'%Y-%m-01') - ${yearsago} year "
不走运。例如,如果我输入年份:2020作为变量。它应该找到当年的第一天,即1月1日,并找到2020年1月1日的一周中的哪一天

输出为如果星期一打印“1”,如果星期二打印“2” 多谢各位

获得当年1月1日这一周的第一天

似乎微不足道:

date -d "$year-1-1" +%a

请参阅以下代码,该代码将为您提供一年中的第一天:

# !/usr/bin/bash
year=2020
firstday=`date -d "01 Jan $year" +'%A,%d'`
echo "First day of the year '$year' is : '$firstday'"

输出: 2020年的第一天是:“01年1月1日星期三”
如果只想获得当天的时间,请删除%d选项

firstday=`date -d "01 Jan $year" +'%A`

输出:2020年的第一天是:“星期三”

在脚本中,您在哪里输出一周中的哪一天<代码>-${yearsago}year?为什么不干脆
date-d“${year}
?如果你知道年份,为什么要减法?@tmiliketurtles我提供的解决方案对你有效吗?有没有办法取而代之的方法?例如,Tue=2?感谢你的阅读
man date
,它解释了所有可用的修饰符。然后研究如何在shell中进行算术运算,请参阅算术展开、研究模和除法运算符更改号码范围。明白了,是%u。谢谢