dyzjzb 发表于 2022-10-6 22:45:33

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]
查看完整版本: go生成随机年月日练习