go生成随机年月日练习
go语言学习基础练习, 生成随机年月日. 代码如下:package main // 设置包名
import ( // 导入包名,使其可用
"fmt"
"math/rand"
"time"
)
// ---------------------------随机生成年,月,日-------------------------------
func main() {
rand.Seed(time.Now().UnixNano()) // 设置随机数种子为时间戳纳秒
for i := 1; i <= 10; i++ {
var era string
var year = rand.Intn(2022-1970+1) + 1970 // 变量 随机生成1970-2022年
var month = rand.Intn(12) + 1 // 变量 随机生成1-12月
var daysInMonth int // 变量 每个月多少天
// 判断是否闰年. 1.能被400整除的年份是闰年; 2.能被4整除并且不能被100整除的年份是闰年.
if year%400 == 0 || (year%4 == 0 && year%100 != 0) {
era = "*闰年"
} else {
era = "平年"
}
switch month {
// 2月28天, 闰年多一天
case 2:
if era == "*闰年" {
daysInMonth = 29
} else {
daysInMonth = 28
}
case 4, 6, 9, 11: // 月小,每月30天
daysInMonth = 30
default: // 月大:1,3,5,7,8,10,12,每月31天
daysInMonth = 31
}
var day = rand.Intn(daysInMonth) + 1 // 随机生成某月的一天
fmt.Printf("%3v %v-%02v-%02v\n", era, year, month, day) // 输出年,月,日
}
/* -----输出示例:-------
平年 2022-05-04
*闰年 2020-03-21
平年 2007-03-24
*闰年 1984-03-04
平年 1973-04-13
平年 1995-10-05
平年 2018-03-11
平年 2015-04-16
*闰年 1984-11-28
平年 1989-05-18
*/
}
页:
[1]