题解 | #计算日期到天数转换#
计算日期到天数转换
https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded
package main
import (
"bufio"
"fmt"
"strconv"
"strings"
"os"
)
func calculate(s string) int {
// 初始化 map
m := make(map[int]int, 0)
for i:=1; i<=12; i++ {
if i == 2 {
m[i] = 28
} else if i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 {
m[i] = 31
} else {
m[i] = 30
}
}
date := strings.Split(s, " ")
year, _ := strconv.Atoi(date[0])
month, _ := strconv.Atoi(date[1])
day, _ := strconv.Atoi(date[2])
// 判断闰年
if year % 4 == 0 && year % 100 != 0 {
m[2] = 29
}
var days int
for i:=1; i<month; i++ {
days += m[i]
}
days += day
return days
}
func main() {
inputReader := bufio.NewReader(os.Stdin)
line, _, _ := inputReader.ReadLine()
date := string(line)
fmt.Println(calculate(date))
}
// 本题输入一个带空格的字符串,所以采用:bufio.NewReader(os.Stdin)
