Golang这一年的第几天
描述
用 Golang 实现,随便输入日期,判断时一年的第几天。
题目
输入某年某月某日,判断这一天是这一年的第几天?
题目解决思路
以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天。
代码具体实现
package main
import (
"fmt"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
var y, m, d int = 0, 0, 0
var days int = 0
fmt.Printf("请输入年月日\n")
fmt.Scanf("%d%d%d\n", &y, &m, &d)
fmt.Printf("%d 年 %d 月 %d 日", y, m, d)
switch m {
case 12:
days += d
d = 30
fallthrough
case 11:
days += d
d = 31
fallthrough
case 10:
days += d
d = 30
fallthrough
case 9:
days += d
d = 31
fallthrough
case 8:
days += d
d = 31
fallthrough
case 7:
days += d
d = 30
fallthrough
case 6:
days += d
d = 31
fallthrough
case 5:
days += d
d = 30
fallthrough
case 4:
days += d
d = 31
fallthrough
case 3:
days += d
d = 28
if (y%400 == 0) || (y%4 == 0 && y%100 != 0) {
d += 1
}
fallthrough
case 2:
days += d
d = 31
fallthrough
case 1:
days += d
}
fmt.Printf("是今年的第 %d 天!\n", days)
}
程序运行后,控制台输出如下:
我们使用 switch case 来判断不同的 case。