天天看点

Linux命令之cal -命令

用途说明

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。我国从辛亥革命后即自民国元年采用阳历,故又名曰“国历”。为与我国旧有之历相对称,故又名曰“新历”。1949年正式规定公元纪年。

公历的前身是古罗马凯撒修订的儒略历。根据儒略历的规定,每4年有1个闰年,闰年为366日,其余3年(称为平年)各有365日。公元年数能被4除得尽的是闰年。儒略历1年平均长365.25 日,比实际公转周期的365.2422日长11分14秒,即每400年约长3日。这样到公元16世纪时已经积累了有10天误差。可以明显感觉到两至两分提前了。在此情况下,教皇格列高里十三世于1582年宣布改历。先是一步到位把儒略历1582年10月4日的下一天定为格列历10月15日,中间跳过10 天。同时修改了儒略历置闰法则。除了保留儒略历年数被4除尽的是闰年外。增加了被100除得尽而被400除不尽的则不是闰年的规定。这样的做法可在400 年中减少3个闰年。在格列高里历历法里,400年中有97个闰年(每年366日)及303个平年(每年365日),所以每年平均长365.2425日,与公转周期的365.2422日十分接近。可基本保证到公元5000年前误差不超过1天。

常用参数

cal命令不带参数只显示当前月份的日历。

-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. This is the default.)

-m     显示星期一为一个星期的第一天(Display Monday as the first day of the week.)

-j       显示儒略日(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)(Display Julian dates (days one-based, numbered from January 1).)

-y      显示当前年份的日历(Display a calendar for the current year.)

使用示例 示例一 显示当前月份的日历

请见谅,JavaEye显示的比较乱,要是能显示等宽字体就好了。

[root@new55 ~]# cal

    十一月 2010    

日 一 二 三 四 五 六

    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

[root@new55 ~]# cal -j

        十一月 2010       

  日   一   二   三   四   五   六

    305 306 307 308 309 310

311 312 313 314 315 316 317

318 319 320 321 322 323 324

325 326 327 328 329 330 331

332 333 334

注:此处显示自1月1日的天数。

[root@new55 ~]# cal -m

一 二 三 四 五 六 日

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

注:此处星期一显示在第一列。

[root@new55 ~]#

示例二 显示当前月份及前后月份的日历 示例三 显示今年的日历 示例四 显示指定年月的日历

继续阅读