Skip to content

Instantly share code, notes, and snippets.

@dayvsonlima
Created January 3, 2020 01:10
Show Gist options
  • Save dayvsonlima/0059171d92665430fc95ec2209c1781b to your computer and use it in GitHub Desktop.
Save dayvsonlima/0059171d92665430fc95ec2209c1781b to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"time"
)
func main() {
var day, month, year, totalOfDays int
fmt.Scanln(&day)
fmt.Scanln(&month)
fmt.Scanln(&year)
for i := year + 1; i < time.Now().Year(); i++ {
totalOfDays+= daysOfYear(i)
}
totalOfDays += dayUntilEndOfYear(day, month, year)
totalOfDays += nthDayOnYear(time.Now().Day(), int(time.Now().Month()), time.Now().Year())
fmt.Println(totalOfDays)
}
func daysOfYear(year int) int{
if isLeapYear(year) {
return 366
} else {
return 365
}
}
func nthDayOnYear(day, month, year int) int{
var totalOfDays int
for i:=0; i < month-1; i++ {
totalOfDays += daysQuantityByMonth(i+1, year)
}
return totalOfDays + day
}
func dayUntilEndOfYear(day, month, year int) int {
var totalOfDays int
for i:=month + 1; i < 13; i++ {
totalOfDays += daysQuantityByMonth(i, year)
}
totalOfDays += daysQuantityByMonth(month, year) - day
return totalOfDays
}
func daysQuantityByMonth(month, year int) int{
if month == 2 && isLeapYear(year) {
return 29
}
var months [12]int
months[0] = 31
months[1] = 28
months[2] = 31
months[3] = 30
months[4] = 31
months[5] = 30
months[6] = 31
months[7] = 31
months[8] = 30
months[9] = 31
months[10] = 30
months[11] = 31
return months[month - 1]
}
func isLeapYear(year int) bool {
return year % 4 == 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment