huaxianyan
V2EX  ›  iPhone

请教一下,自动化如何才能实现每三天执行一次呢?

  •  
  •   huaxianyan · Apr 17, 2024 · 13665 views
    This topic created in 939 days ago, the information mentioned may be changed or developed.

    现在的自动化里重复只有每天每周和每月,但是明明其他地方的重复是可以支持每隔 3 天这种方法的

    有没有办法曲线实现每隔三天执行一次自动化呢?

    Supplement 1  ·  Apr 17, 2024
    我建议点进帖子的各位先看看这是哪个分区,我以为选择了分区就不需要详细说明了

    我详细阐述一下我的问题,是想问 iOS 上快捷指令里的自动化如何每三天执行一次
    Supplement 2  ·  Apr 17, 2024
    另外问题已经解决,感谢楼里给出方法以及思路的朋友,非常感谢

    如果有同样需求的可以自己爬下楼
    28 replies  •  2024-04-18 01:54:52 +08:00
    yzding
    yzding
    Apr 17, 2024 via iPhone
    1
    每天执行一次,然后判断当前日期是否是 3 的倍数?
    facebook47
    facebook47
    Apr 17, 2024 via Android
    2
    每 72 小时🐶
    huaxianyan
    huaxianyan
    OP
    Apr 17, 2024
    3
    @yzding 是只判断日吗,那这样月初月尾衔接的时候应该会有意外
    @facebook47 这个要如何设置呢?自动化的特定时间里重复没有每 72 小时选项
    zsj1029
    zsj1029
    Apr 17, 2024
    4
    crontab 了可以设置*/3 每三小时,同理可以设置三天
    一楼也说了思路,每天的话,程序判断三天。
    既然执行任务,可以看看有没有持久化记录上次执行时间,然后看看是否满足三天间隔
    icestraw
    icestraw
    Apr 17, 2024
    5
    你自己用 每天执行一次,然后时间戳把毫秒转换成天,然后再 mod3
    huaxianyan
    huaxianyan
    OP
    Apr 17, 2024
    6
    @zsj1029 这个思路有尝试过,但是对比日期这块卡住了,想每次执行的时候把时间写到本机的一个文本内,然后下次执行的时候读取进行对比,不过读和写试了很多项都不对
    dingdangnao
    dingdangnao
    Apr 17, 2024
    7
    写个接口 自己做逻辑判断 每三天返回 1 其他时间返回 0
    自动化每天运行 从接口读 😂
    Diphia
    Diphia
    Apr 17, 2024
    8
    @huaxianyan 既然都写文件了,那不如直接写 unixtimestamp ,然后每次看差值到 3 * 24 * 60 * 60 了没有。这样会一直稍微延后一点,或者你设定一个最初的时间去和它的 timestamp 对比
    ho121
    ho121
    Apr 17, 2024 via Android
    9
    sleep 3*24*60*60
    zsj1029
    zsj1029
    Apr 17, 2024
    10
    @huaxianyan 简单逻辑,每天执行,计算执行次数每次+1 ,然后%3 取余
    1 、获取本地文件执行次数 count
    2 、count+=1
    3 、如果 count%3=0 ,执行逻辑代码
    4 、最后 count 的次数再次写入本地文件
    xiaociwei
    xiaociwei
    Apr 17, 2024
    11
    设置最早跑的日期为常量,然后后续算日期天数差能被 3 整除的 就跑
    xiaooloong
    xiaooloong
    Apr 17, 2024
    12
    每天执行,每次把写入的整数 +1 ,轮到 3 的倍数执行真正需要的操作
    F7TsdQL45E0jmoiG
    F7TsdQL45E0jmoiG
    Apr 17, 2024
    13
    在 10:00 AM, 每 3 天 、00 10 */3 * *
    sparkssssssss
    sparkssssssss
    Apr 17, 2024
    14
    刚好之前也有这种需要,有个 shell 脚本 可以参考下


    ```
    start_interval=432000
    end_interval=518400


    start_date=$(date -d '2024-02-04 02:00' +%s)
    now=$(date +%s)
    cycle=$(( (now - start_date) / 432000 ))
    [ $cycle -lt 1 ] && cycle=1
    cycle_start=$(( start_date + cycle * 432000 ))
    cycle_end=$(( cycle_start + start_interval ))


    if [ $((now - cycle_start)) -gt 0 ] && [ $((now - cycle_start)) -lt 80000 ];then
    command
    fi
    ```
    c6h6benzene
    c6h6benzene
    Apr 17, 2024 via iPhone
    15
    跟固定锚点比时间差取余就好了?上面提到的 unix 时间戳正好。
    wweerrgtc
    wweerrgtc
    Apr 17, 2024
    16
    快捷指令中有获取两个日期中的差值的选项

    用这个应该很好实现
    anoninz
    anoninz
    Apr 17, 2024
    17
    每天执行一次,写一个判断(当天与某个写死的特定日子相隔天数是否能被三整除)
    gdfsjunjun
    gdfsjunjun
    Apr 17, 2024
    18
    记录时间戳,每天运行,看是否相差大于三天的秒数不就好了
    huaxianyan
    huaxianyan
    OP
    Apr 17, 2024
    19
    @c6h6benzene
    感谢,这个方法成功了,锚了一个时间计算间隔时间,然后除以 3 以余数来判断,算是曲线实现了
    wclebb
    wclebb
    Apr 17, 2024
    20
    好像可以放在日期(就是日历那个)上执行。
    然后日历上用重复来实现你的目的。
    CivAx
    CivAx
    Apr 17, 2024
    21
    正好我之前写过这个:
    -----
    格式化日期:格式化 2024 年 1 月 1 日(或任何你希望的起始日期)
    从输入中获取日期:从 (格式化日期) 获取日期
    获取日期之间的时常:获取 (当前日期) 到 (起始日期) 之间的时长,单位为 (天)
    获取变量:获取 (日期之间的时常)
    计算结果:(日期之间的时常) ÷ 3
    为数字取整:将 (计算结果) 取整到个位
    如果:如果 (取整后的数字) (是) (计算结果) # 等于判断是否 (计算结果) 有小数,如果能整除则为真
    -- 则执行操作
    否则
    -- 结束条件
    ----
    这个之前是写给某个需要隔 3 天服用的药品用的。这里用的判断是,判断 “执行日” 距离 “起始日(初次服药日)” 是否为 3 ,或能被 3 整除,如果为真,那么就代表隔了 3 天到了下一个服药日;如果不能整除 —— 也就是 “计算结果” 与 “为数字取整” 不全等,那么代表间隔日不足 3 天。

    这个方法不存在闰年 Bug 。
    buf1024
    buf1024
    Apr 17, 2024
    22
    cron tab
    pipilu
    pipilu
    Apr 17, 2024
    23
    执行的时候逢三 return
    YGHMXFAL
    YGHMXFAL
    Apr 17, 2024
    24
    sleep "$((3*24*60*60))"

    (别打我)
    YGHMXFAL
    YGHMXFAL
    Apr 17, 2024
    25
    @YGHMXFAL 把它包在 while true 内部
    googol2chen
    googol2chen
    Apr 17, 2024
    26
    每年执行一次呢?
    allegory
    allegory
    Apr 18, 2024 via iPhone
    28
    @huaxianyan 10 位时间戳除以 86400 不就可以得到天了嘛
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5007 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 02:26 · PVG 10:26 · LAX 18:26 · JFK 21:26
    ♥ Do have faith in what you're doing.