第一问
获取当前日期, 判断是否为闰年, 且计算当前是这一年中的第几天
- 获取当前时间需要使用 time 库, 所以需要 import
- 若某一年份可以整除 4 但不能整除 100 或者整除 400 , 则该年份为闰年
如何计算当前日期是这一年中的第几天?
- 使用 time 库中的 date 函数构造 2022 年的 1 月 1 日
- 然后用当前日期减去这个时间点便可得出
注意点:
- 两个年份相减需要使用点来调用 Sub 函数进行计算
- 得到结果之后需要使用 Hours 函数才能得到相差多少小时
- 相减之后的结果只有三种, 分别是小时, 分钟, 秒, 所以需要进行额外计算才可得到具体的天
最后将得到的小时数 除以 24 便是结果
package main
import "fmt"
import "time"
func main() {
year := time.Now().Year()
if year % 4 == 0 && year % 100 != 0 || year % 400 == 0 {
fmt.Println("\nYES")
} else{
fmt.Println("\nno")
}
firstDay := time.Date(2022, 1, 1, 0, 0, 0, 0, time.Local)
fmt.Println(int((time.Now().Sub(firstDay)).Hours() / 24 + 1))
}
第二问
输入一个分数, 并评定等级, 90分以上为优秀, 80到90之间为良好, 80到70之间为中等, 70到60之间为及格, 60以下为不合格
- 获取输入的变量值使用 fmt 包中的 scan 函数, 对变量进行取地址即可
- 这里使用第二种形式的 switch , 不需要在 switch 后面写变量, 直接在 case 的后面写上表达式即可
package main
import "fmt"
func main() {
var score int
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("excellent")
case score >= 80:
fmt.Println("good")
case score >= 70:
fmt.Println("middle")
case score >= 60:
fmt.Println("pass")
default:
fmt.Println("failed")
}
}