如何使用 shell/perl 脚本获取一个月的第二个星期六? [关闭]

Posted

技术标签:

【中文标题】如何使用 shell/perl 脚本获取一个月的第二个星期六? [关闭]【英文标题】:How to get second saturday of a month using shell/perl script? [closed] 【发布时间】:2016-07-06 08:51:18 【问题描述】:

请提供脚本代码以找出一个月内的第二个星期六

【问题讨论】:

您能否向我们展示您迄今为止的努力以及您遇到的问题?请注意How to Ask。 【参考方案1】:

你可以像这样使用DateTime::Format::Natural模块

$ echo 2nd saturday in april | perl -MDateTime::Format::Natural -E 'say DateTime::Format::Natural->new->parse_datetime(<>)->mdy'

输出

04-09-2016

或者该模块带有一个命令行工具dateparse,它的工作原理是这样的

$ dateparse

dateparse> 2nd saturday in april
2016-04-09 00:00:00

dateparse> q

$

【讨论】:

【参考方案2】:

很简单:

$ cal | sed -n '4s/^.* //gp'
12

这将打印本月第二个星期六(2016 年 3 月)的日期。如果你想要 1959 年 3 月的第二个星期六:

$ cal 3 1959 | sed -n '4s/^.* //gp'
14

如果您想要第一个星期六将4s 替换为3s,如果您想要第三个星期六使用5s...

【讨论】:

我的 cal(在 Linux 上)在这些行中有 2 个尾随空格,因此您的管道失败。 Cut 可能是一个更可靠的选择,并且也适用于一周中的其他日子。

以上是关于如何使用 shell/perl 脚本获取一个月的第二个星期六? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在n个月内使用sql(无程序)获取每个月的第一天和最后一天

shell 如何判读当前日期是不是是,当月的第一天

如何获取每个月的第二个星期五的日期范围?

获取日历月的第一个星期一

使用给定的 DateTime 对象获取一个月的第一天和最后一天

平时随手写的一些脚本程序:shell,perl,python