打印万年历
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
// 获取当前月份
month := now.Month()
// 获取当前年份
year := now.Year()
// 获取当前日期
day := now.Day()
// 获取当前月份的第一天
firstDay := time.Date(year, month, 1, 0, 0, 0, 0, time.Local)
// 获取当前月份的最后一天
lastDay := time.Date(year, month+1, 0, 0, 0, 0, 0, time.Local)
// 获取当前月份的第一天是星期几
weekDay := firstDay.Weekday()
// 获取当前月份的最后一天是几号
lastDayNum := lastDay.Day()
// 获取当前月份的天数
dayNum := lastDayNum
// 获取当前月份的空格数
spaceNum := int(weekDay)
// 打印月份
fmt.Printf("%d年%d月\n", year, month)
// 打印星期
fmt.Println("日\t一\t二\t三\t四\t五\t六")
// 打印空格
for i := 0; i < spaceNum; i++ {
fmt.Print("\t")
}
// 打印日期
for i := 1; i <= dayNum; i++ {
if i == day {
fmt.Printf("%d\t", i)
} else {
fmt.Printf("%d\t", i)
}
if (i+spaceNum)%7 == 0 {
fmt.Println()
}
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接