如何解决在 Zsh 下如何获取两个日期之间的差异?
任何人都知道如何将 How do I get the difference between two dates under bash 处可用的此命令从 bash 转换为 zsh 命令
解决方法
假设您需要多次执行此操作,我会为此创建一个可重用的函数。
- 将其放入名为
duration-in-days
的文件中:autoload -Uz calendar_scandate local start end calendar_scandate $1 start=$REPLY calendar_scandate $2 end=$REPLY print $(( ( end - start ) / ( 24 * 60 * 60 ) ))
- 在您的
.zshrc
文件中,autoload
您的函数。例如,如果您将函数文件保存在目录~/functions
中:# Autoload all functions in your ~/functions dir. autoload -Uz ~/functions/*~*.zwc # Exclude .zwc files (generated when you compile functions).
- 重新启动您的终端或外壳。
现在你可以像这样使用上面的函数:
% duration-in-days 2012-01-15 2012-02-03
19
%
如果您想在可执行脚本中使用此函数,请记住在您的脚本中autoload
。
虽然 bash 和 zsh 相当不同,但它们非常相似,在您的情况下,相同的命令适用于两者:
((DIFF=($(date +%s -d 20120203)-$(date +%s -d 20120115))/86400))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。