59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // 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)
 | |
| }
 |