Golang编程百例-Golang这一年的第几天

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)
}

程序运行后,控制台输出如下:

www.haicoder.net

我们使用 switch case 来判断不同的 case。

你可能感兴趣的:(Golang编程百例)