Date

如何找到每個月的第二天

  • August 26, 2021

如何在 HPUX 中獲取目前月份(例如 8 月 2 日)的第二天(日期)。

date -d在 HPUX Unix 中不起作用。

使用 GNU 和 busybox 實現:

$ date -d '2020-08-02' "+%A"
Sunday

使用 FreeBSD:

$ date -j -f "%d %m %Y" "02 08 2020" "+%A"
Sunday

如果你想得到一年中所有月份的第二天,你可以使用這個 days-in-a-year.sh 腳本:

#!/usr/bin/env sh

year=2021

month=1
while [ $month -le 12 ]; do
   # GNU and busybox
   date -d "$year-$month-02" "+%d %B %Y: %A"

   # FreeBSD
   # date -j -f "%d %m %Y" "02 $month $year" "+%d %B %Y: %A"

   month=$(( month + 1 ))
done

輸出:

$ ./days-in-a-year.sh
02 January 2021: Saturday
02 February 2021: Tuesday
02 March 2021: Tuesday
02 April 2021: Friday
02 May 2021: Sunday
02 June 2021: Wednesday
02 July 2021: Friday
02 August 2021: Monday
02 September 2021: Thursday
02 October 2021: Saturday
02 November 2021: Tuesday
02 December 2021: Thursday

順便說一句,cal在 FreeBSD 和 Linux 上作為 util-linux 包的一部分提供了一個漂亮的實用程序,它可以在命令行中顯示日曆:

$ cal
    August 2021
Su Mo Tu We Th Fr Sa
1  2  3  4  5  6  7
8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

引用自:https://unix.stackexchange.com/questions/666228