gpt4 book ai didi

linux - 试图在 Shell 脚本 $(date +%j) 中找到确切的剩余天数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:16 24 4
gpt4 key购买 nike

我正在尝试这个简单的脚本,但不知何故我每次都多了 2 天:

#!/bin/bash
date=$(date +%j)
remaining="$(( 365 - $date))"
echo $remaining

2015 年 1 月 12 日,我还剩下 355 天,而它应该是 353 天。

约会,一切都很好。

最佳答案

天数输出前导零:

$ date +%j
012

这意味着该数字将被解释为八进制数,八进制数 012 等于十进制数 10(这就是它相差 2 的原因)。您可以手动指定基数以覆盖默认解释:

date=$(date +%j)
remaining="$(( 365 - 10#$date))"
echo "$remaining"

1 月 12 日今天给出 353。

附带说明一下,如果您想获取当年的总天数而不是硬编码 365,您可以使用:

days_this_year=$(date -d "$(date +%Y)/12/31" +%j)

关于linux - 试图在 Shell 脚本 $(date +%j) 中找到确切的剩余天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com