Created
January 3, 2020 01:10
-
-
Save dayvsonlima/0059171d92665430fc95ec2209c1781b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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