首页 > 解决方案 > 每月第一天的星期一数

问题描述

我希望命令行可以在不使用或命令的情况下显示给定年份的第一个月的星期一数sedawk

我有这个命令显示当月的第一个日期

date -d "-0 month -$(($(date +%d)-1)) days"

标签: linuxshellubuntuunixgnu

解决方案


使用 GNU date,您可以从文件(或标准输入)读取输入:

printf '%s\n' 2021-{01..12}-01 | date -f- +%u | grep -c 1

这会打印一年中每个月的第一天的日期,然后将它们格式化为“工作日”(其中1是“星期一”),然后计算星期一的数量。

要参数化年份,请替换2021为包含年份的变量;包装在一个函数中:

mondays() {
    local year=$1
    printf '%s\n' "$year"-{01..12}-01 | date -f- +%u | grep -c 1
}

推荐阅读