显示日历和复活节的日期
命令语法格式
cal [-31jy] [-A number] [-B number] [-d yyyy-mm] [[month] year]
cal [-31j] [-A number] [-B number] [-d yyyy-mm] -m month [year]
ncal [-C] [-31jy] [-A number] [-B number] [-d yyyy-mm] [[month] year]
ncal [-C] [-31j] [-A number] [-B number] [-d yyyy-mm] -m month [year]
ncal [-31bhjJpwySM] [-A number] [-B number] [-H yyyy-mm-dd] [-d yyyy-mm] [-s country_code] [[month] year]
ncal [-31bhJeoSM] [-A number] [-B number] [-d yyyy-mm] [year]
命令描述
命令cal以传统格式显示简单日历,ncal提供另一种布局,更多选项和复活节日期。新的格式有点局促,但它可以在25×80终端中显示一年。 如果未指定参数,则显示当前月份。
命令行选项
-h
关闭今天的突出显示。
-J
显示朱利安日历,如果与-o选项结合使用,则根据朱利安日历显示东正教复活节的日期。
-e
显示复活节的日期(西方教会)。
-j
显示朱利安日(基于第一天,从1月1日开始编号)。
-m month
显示指定的月份。 如果将month指定为十进制数字,则附加“f”或“p”将分别显示下一年或上一年的同一月份。
-o
显示东正教复活节(希腊和俄罗斯东正教教会)的日期。
-p
打印国家代码,并将天数从朱利安日历转换为格里高利日历,因为它们由ncal假设。 从本地环境确定的国家/地区代码标有星号。
-s country_code
假设在与country_code关联的日期从Julian切换到Gregorian日历。 如果没有指定,ncal会尝试从当地环境猜测切换日期或者回到1752年9月2日。这是英国和她的殖民地切换到公历的时候。
-w
打印每周列以下的周数。
-y
显示指定年份的日历。 如果在命令行上指定了一年但没有指定月份,则隐含此选项。
-3
显示今天的前一个,当前和下个月。
-1
仅显示当前月份。 这是默认值。
-A number
添加的后几个月。 指定的月数将添加到显示的末尾。 这是由-y,-3,-1选项选择的任何日期范围的补充。 例如,“cal -y -B2 -A2”显示从上一年的11月到次年的2月的所有内容。 允许使用负数,在这种情况下,减去指定的月数。 例如,“cal -y -B-6”显示7月到12月。 而“cal -A11”只显示未来12个月。
-B number
添加前几个月份。 指定的月数将添加到显示的开头。 有关示例,请参阅-A。
-C
完全切换到cal模式。 对于cal像仅输出,请改用-b。
-N
切换到ncal模式。
-d yyyy-mm
使用yyyy-mm作为当前日期(用于调试日期选择)。
-H yyyy-mm-dd
使用yyyy-mm-dd作为当前日期(用于突出显示的调试)。
-M
周从星期一开始。
-S
周从星期天开始。
-b
使用旧风格格式进行ncal输出。
附加说明
单个参数指定要显示的年份(1-9999);请注意,年份必须完全指定:“cal 89”不会显示1989年的日历。两个参数表示月份和年份;月份是1到12之间的数字,或者是当前语言环境指定的完整或缩写名称。 月份和年份默认为当前系统时钟和时区的值(因此“cal -m 8”将显示当前年份8月份的日历)。
并非所有选项都可以一起使用。 例如,选项-y,-3,-1是互斥的。 如果给出了不一致的选项,则后面的选项优先于先前的选项。
一年从1月1日开始。
注意事项
对于许多国家而言,将Julian-Gregorian转换日期分配给国家/地区代码在历史上是天真的。
并非所有选项都兼容,并且在不同的顺序中使用它们会产生不同的结果。
历史
cal命令出现在第5版AT&T UNIX中。 ncal命令出现在FreeBSD 2.2.6中。 cal命令的输出应该是与原始Unix cal命令的位兼容,因为它的输出由其他程序(如CGI脚本)处理,不应该被破坏。 因此,即使只有7行包含数据,它也总是输出8行。 这个额外的空白行也会出现在原始的cal命令中,至少在Solaris 8上是这样
相关手册
calendar(3), strftime(3)
参考文献
- man 1 cal, Version 9.0.12
更新日志
- 11/17/2018 创建文章