V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
AmrtaShiva
V2EX  ›  Go 编程语言

求个时间比较的方法

  •  
  •   AmrtaShiva · 2020-04-06 05:07:43 +08:00 via iPhone · 2349 次点击
    这是一个创建于 1700 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已知时间

    • t0,t1,t2...ta,tx,ty,tz,tb,tz, 求 ta 到 tb 中距离 tz 最近的一个时间 ,时间范围满足有且只有 ta tb 。不能在 ta 之前 不能在 tz 之后。
    • 试过 tz.Sub(ta)和 to.Sub(tb)比较 不行。
    • 试了 Before() 也试过 After() 用 for 循环之后时间-4 会退回到 ta 之前。不减 4 无法判断。 有什么其他思路吗?谢谢
    第 1 条附言  ·  2020-04-06 20:28:25 +08:00
    • 感谢各位热心的回复,现在问题解决了.

    • 对比了1978到2178年之间所有的数据 找出了规律.

    • 列表里面的 t0,t1,t2...ta,tx,ty,tz,tb,tz, 是TDB数据经过计算后转换为go的time.Time类型 抱歉我没有提前说明白.

    • 规律就是ta或者tb到tz的差值有三种可能.

    • 某值 特定值

    ta=某值同时tb=x
    ta=某值同时tb=另一个值
    ta tb同时不等于某值.
    
    13 条回复    2020-04-06 14:42:13 +08:00
    reus
        1
    reus  
       2020-04-06 07:56:42 +08:00 via Android
    都不知道你说啥,代码也不给,一句不行,谁知道你说啥不行? Sub 怎么就不能比较了? After, Before 怎么就不能比较了?你究竟想比较啥?
    mm163
        2
    mm163  
       2020-04-06 08:47:02 +08:00
    Unix()通通转成 int64, 想怎么比较都行。
    cloud0001
        3
    cloud0001  
       2020-04-06 09:17:56 +08:00
    没听明白
    skys215
        4
    skys215  
       2020-04-06 09:27:39 +08:00
    不能在 tz 之后的话…tb 的意义在哪…?
    AmrtaShiva
        5
    AmrtaShiva  
    OP
       2020-04-06 10:20:59 +08:00
    @skys215 ta tb 二选一 而且 tb 出现的几率极少 千年没见一次 这是万年历当中定冬至前朔的计算
    hwenwur
        6
    hwenwur  
       2020-04-06 12:32:09 +08:00 via Android
    没看明白。求最近的时间点 转成时间戳然后相减取绝对值不行吗
    loading
        7
    loading  
       2020-04-06 12:59:26 +08:00 via Android
    fmt.Println(tz.(type))
    输出是什么
    AmrtaShiva
        8
    AmrtaShiva  
    OP
       2020-04-06 13:13:41 +08:00
    @loading use of .(type) outside type switch
    loading
        9
    loading  
       2020-04-06 13:20:00 +08:00 via Android
    我也是服了……能不能直接告诉我你用的类型。

    import (
    "reflect"
    "fmt"
    )
    func main() {

    fmt.Println(typeof(v))
    }
    func typeof(v interface{}) string {
    return reflect.TypeOf(v).String()
    }
    loading
        10
    loading  
       2020-04-06 13:21:31 +08:00 via Android
    不敢帮了。
    reus
        11
    reus  
       2020-04-06 13:38:44 +08:00
    “t0,t1,t2...ta,tx,ty,tz,tb,tz, 求 ta 到 tb 中距离 tz 最近的一个时间”,这不就是 tb ?

    “时间范围满足有且只有 ta tb ”,意义不明

    “不能在 ta 之前 不能在 tz 之后”,你这个范围究竟是 [ta, tb] 还是 [ta, tz] ?

    “试过 tz.Sub(ta)和 to.Sub(tb)比较 不行”,to 哪来的?不行是指什么不行?

    “试了 Before() 也试过 After() ”,能不能给个表达式来说明你的意思?

    “用 for 循环之后时间-4 会退回到 ta 之前”,没有代码谁知道你说什么循环?

    没人明白你什么思路,更不可能给你其他思路。
    AmrtaShiva
        12
    AmrtaShiva  
    OP
       2020-04-06 14:41:11 +08:00
    @loading time.Time 类型
    AmrtaShiva
        13
    AmrtaShiva  
    OP
       2020-04-06 14:42:13 +08:00
    @reus 谢了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2789 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:52 · PVG 19:52 · LAX 03:52 · JFK 06:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.