MST

星途 面试题库

面试题:Go语言如何进行时间区间的计算与判断

给定两个时间点,分别表示一个事件的开始时间和结束时间,要求使用Go语言编写程序,计算该事件持续的时长(精确到秒),并且判断当前时间是否在这个时间区间内。
11.5万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
    "time"
)

func main() {
    // 假设的开始时间和结束时间
    startTime, _ := time.Parse("2006-01-02 15:04:05", "2023-10-01 10:00:00")
    endTime, _ := time.Parse("2006-01-02 15:04:05", "2023-10-01 11:30:00")

    // 计算事件持续时长
    duration := endTime.Sub(startTime).Seconds()
    fmt.Printf("事件持续时长: %.0f 秒\n", duration)

    // 获取当前时间
    currentTime := time.Now()

    // 判断当前时间是否在时间区间内
    if currentTime.After(startTime) && currentTime.Before(endTime) {
        fmt.Println("当前时间在这个时间区间内")
    } else {
        fmt.Println("当前时间不在这个时间区间内")
    }
}
  1. 解析时间:使用time.Parse函数将字符串形式的时间解析为time.Time类型。这里的时间格式"2006-01-02 15:04:05"是Go语言中的时间格式化模板。
  2. 计算持续时长:使用Sub方法计算两个time.Time类型时间点的差值,再通过Seconds方法将差值转换为秒数。
  3. 判断当前时间:使用AfterBefore方法判断当前时间是否在给定的开始时间和结束时间之间。