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

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

【问题讨论】:

  • 您能否向我们展示您迄今为止的努力以及您遇到的问题?请注意How to Ask

标签: perl shell


【解决方案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 可能是一个更可靠的选择,并且也适用于一周中的其他日子。
    猜你喜欢
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2014-07-21
    相关资源
    最近更新 更多