// For more tutorials: https://blog.learngoprogramming.com // // Copyright © 2018 Inanc Gumus // Learn Go Programming Course // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ // package main import ( "fmt" "os" "strings" "time" ) func main() { if len(os.Args) != 2 { fmt.Println("Give me a month name") return } // get the current year and find out whether it's a leap year year := time.Now().Year() leap := year%4 == 0 && (year%100 != 0 || year%400 == 0) // setting it to 28, saves me typing it below again days := 28 month := os.Args[1] // case insensitive if m := strings.ToLower(month); m == "april" || m == "june" || m == "september" || m == "november" { days = 30 } else if m == "january" || m == "march" || m == "may" || m == "july" || m == "august" || m == "october" || m == "december" { days = 31 } else if m == "february" { // try a "logical and operator" above. // like: `else if m == "february" && leap` if leap { days = 29 } } else { fmt.Printf("%q is not a month.\n", month) return } fmt.Printf("%q has %d days.\n", month, days) }