【问题标题】:How to use ubuntu command line to find a holiday?如何使用 ubuntu 命令行查找假期?
【发布时间】:2016-04-21 20:45:49
【问题描述】:

如何使用ubuntu命令查询2017年母亲节(5月第二个星期日)的日期?

由于 -v 在 ubuntu 上不起作用,它在 Mac 上起作用。

【问题讨论】:

  • 哪个国家的?
  • 不同国家/地区的不同日期庆祝母亲节(例如,请参阅the wikipedia entry)。你到底想找到哪一天?
  • 五月的第二个星期日

标签: unix ubuntu command


【解决方案1】:

假设它通常是五月的第二个星期日:

fhenri@machine:~$ date -v1d -v5m -v+1y -v+2w -v-sun
Dim 14 mai 2017 22:56:28 CEST

您应该查看man date 以获取更多示例并了解您是否需要另一个特定的星期日或修复日

我在我的 macos(基于 freeBSD)上运行,没有意识到 date 在 *nix 系统中不统一。

在 ubuntu 上,它显示有点困难,但我会怎么做

vagrant@ubuntu:~$ firstofmay=$(date -d '05/01/2017')
vagrant@ubuntu:~$ firstsunday=$(date -d "$firstofmay" '+%Y-%m')-$(( 8 - $(date -d "$firstofmay" '+%u') ))
vagrant@ubuntu:~$ secondsunday=$(date -d "$firstsunday + 1 week" '+%Y-%m-%d')
vagrant@ubuntu:~$ echo $secondsunday
2017-05-14
  1. 首先我将 5 月 1 日初始化为我的基准日期
  2. 然后我得到这个月第一个星期日的格式:天是从 7 开始的,$(date -d "$firstofmonth" '+%u') 将是 5 月 1 日的天数(即:星期一是 1);这给出了一种格式,例如 YYYY-MM-dd
  3. 在这个日期加上 1 周我之前给出了正确的日期 - 如果您想要不同的格式,请调整格式

【讨论】:

  • 这里的-v是什么意思,在我的man date中,只有-d,-f,-r,-R,-s,-u,--help。所以,1d 表示 1 天,5m --> 可能,+1y --> 明年,+2w --> 第二周。但我不能在这里使用 -v 。我正在使用 ubuntu。
  • 对,你在你的系统中提到了unix并将其标记为unix,从而回答了ubuntu的date命令
猜你喜欢
  • 2018-10-07
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 2016-01-10
  • 1970-01-01
  • 2022-12-15
相关资源
最近更新 更多