原 好玩的Linux,關於時間cal命令

2021-09-06 09:30:21 字數 1778 閱讀 7657

我們都知道,在linux中,可以通過cal命令來檢視日曆。cal怎麼用呢,我們可以man一下,可以看到如下結果:

我們可以看到cal命令的基本用法如下:cal [-smjy13] [[[day] month] year] 

當然如果不加指定引數的話,會顯示當前的月份情況。

其常用引數如下:

-1      display single month output.  (this is the default.)

-3      display prev/current/next month output.

-s      display sunday as the first day of the week.

-m      display monday as the first day of the week.

-j      display julian dates (days one-based, numbered from january 1).

-y      display a calendar for the current year.

-v      display version information and exit.

我對其逐個簡單解釋一下:

-1    會把當前單月顯示輸出(這個也是預設值)

-3   會顯示3個月,分別是上乙個月,本月,和下個月

-s   會把星期天作為每週的第一天顯示

-m    會把星期一作為每週的第一天顯示

-j   會顯示【天文學】儒略日(從公曆1月1日開始的時間,今天是一年裡的第多少天)

-y   顯示當前一整年的日曆

-v   會顯示當前的版本資訊

( 每個引數的使用方法,已經進行了說明,這裡就不貼圖了。)

看了這些命令和解釋,其實很簡單吧。簡單試驗一下,相信大家肯定就知道怎麼用了。後面我補充一下這些引數配合使用的效果,比如:

1.cal -jy  可以將本年度的每一天從年初到年為表上序號,從1~365計數的形式顯示,如下:

3.cal 5 2013 可以顯示2023年5月份的情況

4.當然這裡還有乙個實際有用的小技巧:比如你想知道前年某一天(eg.2011-11-14)和今天相隔多少天,那麼我們可以這麼做:

1)通過 cal -j 14 11 2011 可以得到2011-11-14在當年的天文學日

2)通過cal看下今天的時間

3)然後很簡單就可以計算出來了,另外計算可以通過bc,此略。

5.說到這裡,我們也可以再嘗試一下:cal 9 1752 ,可以發現結果如下圖:

我們可以發現,竟然9月2號過去就是9月14號。有人說這個是不是linux cal的bug,其實不是的,那麼中間的時間去**了呢?這裡引出乙個故事,大家看了就明白了:

2023年9月,大英帝國極其所屬美洲殖民地的愷撒曆法被格里高利教皇曆法所取代。由於愷撒曆法比格里高利曆法遲11天,因此9月2日當天改曆法後,次日須為9月14日。現行的公曆是格利戈里曆法,這個曆法的是2023年教皇格利戈里根據愷撒大帝引進的演算法改進的。它採用的是閏年制也就是現行的制度,不過有乙個需要注意的地方就是,這個曆法並不是連續的,中間缺少了11天。2023年9月2日之後的那一天並不是2023年9月3日,而是2023年9月14日。也就是說,從2023年9月3日到2023年9月13日的11天並不存在。抹掉這11天是由英國議會做出的決定。所以要計算某年每個月的天數的,除了要考慮是否是閏年以外,還要考慮2023年的9月。 (這段話出自:互動百科)

呵呵,看來linux還有很多奇妙的事情等著挖掘。

---2023年5月6日17:25:19

好玩的linux命令

無意中看到一篇關於shell命令的用法,挺實用的,故記錄下 原文 2.find模糊匹配 find media cdrom name gcc 1.刪除目錄下的所有資料夾 rm r fr 0.看天氣 curl 1.sudo 相當於 1,也就是執行前一條命令,當然也可以 2,50。擴充套件 str?最近一...

Linux上好玩的命令

new th yes 輸出一串y,有時可以用來對付很多y n選擇的應用 banner 列印字元標題,就是用字元拼出大字來 ddate 把日曆轉成什麼其他歷,today is sweetmorn,the 63rd day of discord in the yold 3173 fortune 輸出一句...

linux下好玩的東東

東東1 script scriptreplay 1 錄製命令 script t 2 example.time a example.txt 2 結束錄製 exit scriptreplay example.time example.txt簡單解釋一下這行命令 t 是把時間資料輸出到標準錯誤 stand...