Golang : Get future or past hours, minutes or seconds
Problem:
You need to calculate future or past minutes, hours or seconds from the current time. Ability to calculate future or past hours, minutes and seconds can be useful in interpolating data in smaller scale than one day. How to do that in Golang?
Solution:
Similar to calculating future by days tutorial, but a few levels down from days. We will still use the Add()
function, but will convert the input parameters with time.Hour
, time.Minute
and time.Second
. Run the code example below to get a better grasp.
Here you go!
package main
import (
"fmt"
"time"
)
func GetHourMinuteSecond(hour, minute, second time.Duration) time.Time {
return time.Now().Add(time.Hour*hour + time.Minute*minute + time.Second*second)
}
func main() {
now := time.Now()
fmt.Println("Now is : ", now.Format(time.ANSIC))
// get three minutes into future
threeMinutes := time.Minute * time.Duration(3)
future := now.Add(threeMinutes)
fmt.Println("Three minutes from now will be : ", future.Format(time.ANSIC))
// get 5 hours into past
backFiveHours := time.Hour * time.Duration(-5)
past := now.Add(backFiveHours)
fmt.Println("Five hours ago from now will be : ", past.Format(time.ANSIC))
// from a function
getTime := GetHourMinuteSecond(0, 0, 50)
fmt.Println("50 seconds from now is : ", getTime.Format(time.ANSIC))
getTime2 := GetHourMinuteSecond(-5, -9, 0)
fmt.Println("5 hours and 9 minutes ago from now is : ", getTime2.Format(time.ANSIC))
}
Sample output:
Now is : Sat May 6 15:13:32 2017
Three minutes from now will be : Sat May 6 15:16:32 2017
Five hours ago from now will be : Sat May 6 10:13:32 2017
50 seconds from now is : Sat May 6 15:14:22 2017
5 hours and 9 minutes ago from now is : Sat May 6 10:04:32 2017
Happy time traveling!
References:
https://www.socketloop.com/tutorials/golang-calculate-future-date-with-time-add-function
See also : Golang : Calculate future date with time.Add() function
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+7.7k Golang : Check from web if Go application is running or not
+8.7k Golang : Populate or initialize struct with values example
+9.2k Golang : Scramble and unscramble text message by randomly replacing words
+12.4k Golang : zlib compress file example
+14.2k Golang : Send email with attachment(RFC2822) using Gmail API example
+42.8k Golang : Get hardware information such as disk, memory and CPU usage
+8.6k Golang : Gaussian blur on image and camera video feed examples
+4.8k Golang : Display packages names during compilation
+11.1k Golang : Delay or limit HTTP requests example
+18.2k Golang : Get download file size
+12k Golang : Simple client-server HMAC authentication without SSL example
+8.7k Golang : Sort lines of text example