徐小玉的博客。
分类:
2008-03-05 14:25:05
在系统管理脚本的世界里,处理日期是很常见的任务。一项需要经常执行的任务是比较日期以确定文件存在的时间、某事件在多久之前创建等等。
在本次活动中,当脚本运行时需要用户以命令行参数的方式输入一个日期。您的任务是读取该日期,并将其与系统当前日期进行比较。您的脚本输入将包含以下三部分:
• |
Days.系统日期和输入日期之间相差的天数。 |
• |
Months.系统日期和输入日期之间相差的月数。 |
• |
Months/Days.系统日期和输入日期之间相差的月数和天数。 |
例如:假设系统日期是 2008 年 2 月 15 日,而用户输入的日期是 2008 年 3 月 3 日。则应该得到如下输出:
Days: 17 Months: 1 Months/Days: 0 / 17
如您所见,2 月 15 日和 3 月 3 日之间相差 17 天。因为 2 月 15 日在 2 月而 3 月 3 日在 3 月,所以它们之间相差 1 个月。但请注意,当我们显示 Months/Days 时,两个日期之间实际上并不是相差完整的一个月,所以日期之间相差的实际总时间为 0 个月加 17 天。
如果用户输入的不是 2008 年 3 月 3 日,而是 2009 年 3 月 3 日,则应该得到如下输出:
Days: 382 Months: 13 Months/Days: 12 / 16
2008 年 2 月 15 日和 2009 年 3 月 3 日之间相差的总天数是 382 天。两者相差的月数为 13 个月。从 2008 年 2 月 15 日到 2009 年 3 月 3 日之间相差的月数和天数是 12 个月加 16 天。
关于此活动的几点注意事项。第一点是:当我们测试本活动的答案时,我们将始终把日期作为脚本命令后的第一个参数输入,并且该日期始终是有效日期。第二点,您只需要检查当前日期之后的日期,不需要计算以前的日期。最后一点,我们将使用英语(美国)时区和语言选项设置,并且始终使用如下格式的字符串值输入日期:March 3, 2008