Golang : Calculate how many weeks left to go in a given year
Here is a simple tutorial on how to calculate the number of weeks in a given year and figure out how many more weeks left to go. A year can have either 52 or 53 weeks and care must be taken to properly get the last day of the last week in a year to get the correct number of weeks.
Here you go!
package main
import (
"fmt"
"time"
"github.com/jinzhu/now"
)
func main() {
tn := time.Now() // change this to calculate different year
fmt.Println("Now : ", tn.Format(time.ANSIC))
// this week is which number in the current calender year
_, currentWeekNumber := tn.ISOWeek()
fmt.Println("Current week number : ", currentWeekNumber)
// calculate the last week number for the current year
last := now.EndOfYear()
lastWeekOfTheYear := now.New(last).BeginningOfWeek()
fmt.Println("The day of the final week : ", lastWeekOfTheYear.Format(time.ANSIC))
_, lastWeekNumber := lastWeekOfTheYear.ISOWeek()
// verify at https://www.epochconverter.com/weeks/2019
fmt.Println("For the year", tn.Year(), ". It has", lastWeekNumber, "weeks.")
weeksLeft := lastWeekNumber - currentWeekNumber
fmt.Println("Hence, there are", weeksLeft, "weeks left to go.")
}
Output:
Now : Thu Jun 13 18:14:04 2019
Current week number : 24
The day of the final week : Sun Dec 29 00:00:00 2019
For the year 2019 . It has 52 weeks.
Hence, there are 28 weeks left to go.
Happy coding!
References :
https://www.socketloop.com/references/golang-time-time-isoweek-function-example
See also : Golang : Loop each day of the current month example
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
+4.5k Golang : Map within a map example
+5.4k Golang : Rot13 and Rot5 algorithms example
+13.6k Golang : Test floating point numbers not-a-number and infinite example
+17.4k Golang : Secure(TLS) connection between server and client
+4.2k Golang : Use NLP to get sentences for each paragraph example
+60.1k Golang : Convert HTTP Response body to string
+7k Golang : Detect number of active displays and the display's resolution
+11.5k Golang : Gin framework accept query string by post request example
+13.3k Golang : Read large file with bufio.Scanner cause token too long error
+8.6k Golang : Concatenate (combine) buffer data example
+4.3k Linux/MacOSX : Search for files by filename and extension with find command
+30.6k Golang : How to stream file to client(browser) or write to http.ResponseWriter?