我想通过将星期几(星期天除外)的今天日期作为输入来打印最后一个星期日的日期,但是如果是星期日,则应该打印今天的日期。我尝试过了
a=`date -dlast-sunday +%Y%m%d`
但是这给出了最后一个日期之前的星期日。
答案 0 :(得分:4)
与其要求最后一个星期日,不如要求在下一个星期日之前的一周。
$ date +%Y%m%d
20190531
$ date -d'next sunday - 1 week' +%Y%m%d
20190526
就像“最后一个星期日”总是早于当前日期,“下一星期日”也总是早于当前日期。
在我写这个答案的时候是星期五,让我们使用这种技术来询问上周五:
$ date +"%A %F"
Friday 2019-05-31
$ date -d 'next Friday - 1 week' +"%A %F"
Friday 2019-05-31
答案 1 :(得分:1)
请您尝试以下。
cal |
awk -v dat=$(date +%d) '
{
for(i=1;i<=NF;i++){
if($i==dat){
if(i!=1){
print "Last Sunday is: "$1
}
else{
print "This day itself is Sunday."
}
}
}
}'
答案 2 :(得分:1)
您可以使用import calendar
data = pd.read_csv('D:\JimmyGao\Tutorials\WindRose\pattern_freq.csv')
df.head()
data.columns = ['pattern', 'month', 'freq']
df = pd.melt(data, id_vars = ['month','pattern'])
df
wsp, wdir = 'value', 'WindDir'
plt.figure(figsize = (16,12))
nbcol = 4
nblines = 3
for month, group in df.groupby('month'):
ax = plt.subplot(nblines, nbcol, month)
group[wsp].hist(bins = 10, ax = ax)
ax.set_title(calendar.month_name[month])
ax.set_ylim(0,5)
ax.set_xlim(0,50)
plt.tight_layout()
选项,通过date
命令本身简单地完成此操作,
date -d
您将在其中以date -d "today - $(date -d today +"%u") days"
的形式传递任意日期(以示例为例),它将给出前一个星期日的日期。通过从给定日期(示例中为today
)中减去星期几(date -d today +"%u"
)天数来实现。如果今天是星期日,则可以在检查today
之前使用if
来简单地输出当前日期。
示例
if [ "$(date -d today +"%u")" -eq '7' ]; then date; else ... fi
答案 3 :(得分:0)
通过获取今天的日期来打印上一个星期日的日期的命令是:
a=$(date -d 'last Sunday ' +"%A %F")
echo $a