C語言中文網 目錄
首頁 > Go語言教程 > Go語言函數 閱讀:4,365

Go語言將秒轉換為具體的時間

在本例中,使用一個數值表示時間中的“秒”值,然后使用 resolveTime() 函數將傳入的秒數轉換為天、小時和分鐘等時間單位。

將秒解析為時間單位:
package main

import "fmt"

const (
    // 定義每分鐘的秒數
    SecondsPerMinute = 60

    // 定義每小時的秒數
    SecondsPerHour = SecondsPerMinute * 60

    // 定義每天的秒數
    SecondsPerDay = SecondsPerHour * 24
)

// 將傳入的“秒”解析為3種時間單位
func resolveTime(seconds int) (day int, hour int, minute int) {

    day = seconds / SecondsPerDay
    hour = seconds / SecondsPerHour
    minute = seconds / SecondsPerMinute

    return
}

func main() {

    // 將返回值作為打印參數
    fmt.Println(resolveTime(1000))

    // 只獲取消息和分鐘
    _, hour, minute := resolveTime(18000)
    fmt.Println(hour, minute)

    // 只獲取天
    day, _, _ := resolveTime(90000)
    fmt.Println(day)
}
代碼輸出結果:
0 0 16
5 300
1

代碼說明如下:
  • 第 7 行,定義每分鐘的秒數。
  • 第 10 行,定義每小時的秒數,SecondsPerHour 常量值會在編譯期間計算出結果。
  • 第 13 行,定義每天的秒數。
  • 第 17 行,定義 resolveTime() 函數,根據輸入的秒數,返回 3 個整型值,含義分別是秒數對應的天數、小時數和分鐘數(取整)。
  • 第 29 行中,給定 1000 秒,對應是 16(16.6667 取整)分鐘的秒數。resolveTime() 函數返回的 3 個變量會傳遞給 fmt.Println() 函數進行打印,因為 fmt.Println() 使用了可變參數,可以接收不定量的參數。
  • 第 32 行,將 resolveTime() 函數中的 3 個返回值使用變量接收,但是第一個返回參數使用匿名函數接收,表示忽略這個變量。
  • 第 36 行,忽略后兩個返回值,只使用第一個返回值。

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo