输入某年某月某日,判断这一天是这一年的第几天?(提示:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天。用go语言
时间: 2024-10-19 14:17:53 浏览: 13
java 输入某年某月某日,判断这一天是这一年的第几天
在Go语言中,你可以通过编写一个函数来实现这个功能。首先,我们需要考虑闰年的情况,以及2月的天数。以下是简单的逻辑:
```go
package main
import (
"fmt"
"time"
)
func dayOfYear(year int, month int, day int) int {
var totalDays int
if month < 3 { // 如果月份小于3,调整到前一年
year--
month += 12
}
if month == 2 && isLeapYear(year) { // 闰年且2月有29天
if day >= 28 {
totalDays = (1 + 30 + 31 + day)
} else {
totalDays = (1 + 29 + day)
}
} else if month == 2 { // 非闰年或非2月
totalDays = (1 + 31 + day)
} else { // 其他月份
switch month {
case 4, 6, 9, 11:
totalDays = (1 + 30 + day)
default:
totalDays = (1 + 31 + day)
}
}
return totalDays
}
// 判断是否为闰年
func isLeapYear(year int) bool {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
}
func main() {
fmt.Println(dayOfYear(2023, 3, 5)) // 测试
}
//
阅读全文