golang日期时间time包代码示例: 根据生日获取年龄、生肖、星座
2023-09-14 09:01:53 时间
package main
import (
"fmt"
"time"
)
func GetTimeFromStrDate(date string) (year, month, day int) {
const shortForm = "2006-01-02"
d, err := time.Parse(shortForm, date)
if err != nil {
fmt.Println("出生日期解析错误!")
return 0, 0, 0
}
year = d.Year()
month = int(d.Month())
day = d.Day()
return
}
func GetZodiac(year int) (zodiac string) {
if year <= 0 {
zodiac = "-1"
}
start := 1901
x := (start - year) % 12
if x == 1 || x == -11 {
zodiac = "鼠"
}
if x == 0 {
zodiac = "牛"
}
if x == 11 || x == -1 {
zodiac = "虎"
}
if x == 10 || x == -2 {
zodiac = "兔"
}
if x == 9 || x == -3 {
zodiac = "龙"
}
if x == 8 || x == -4 {
zodiac = "蛇"
}
if x == 7 || x == -5 {
zodiac = "马"
}
if x == 6 || x == -6 {
zodiac = "羊"
}
if x == 5 || x == -7 {
zodiac = "猴"
}
if x == 4 || x == -8 {
zodiac = "鸡"
}
if x == 3 || x == -9 {
zodiac = "狗"
}
if x == 2 || x == -10 {
zodiac = "猪"
}
return
}
func GetAge(year int) (age int) {
if year <= 0 {
age = -1
}
nowyear := time.Now().Year()
age = nowyear - year
return
}
func GetConstellation(month, day int) (star string) {
if month <= 0 || month >= 13 {
star = "-1"
}
if day <= 0 || day >= 32 {
star = "-1"
}
if (month == 1 && day >= 20) || (month == 2 && day <= 18) {
star = "水瓶座"
}
if (month == 2 && day >= 19) || (month == 3 && day <= 20) {
star = "双鱼座"
}
if (month == 3 && day >= 21) || (month == 4 && day <= 19) {
star = "白羊座"
}
if (month == 4 && day >= 20) || (month == 5 && day <= 20) {
star = "金牛座"
}
if (month == 5 && day >= 21) || (month == 6 && day <= 21) {
star = "双子座"
}
if (month == 6 && day >= 22) || (month == 7 && day <= 22) {
star = "巨蟹座"
}
if (month == 7 && day >= 23) || (month == 8 && day <= 22) {
star = "狮子座"
}
if (month == 8 && day >= 23) || (month == 9 && day <= 22) {
star = "处女座"
}
if (month == 9 && day >= 23) || (month == 10 && day <= 22) {
star = "天秤座"
}
if (month == 10 && day >= 23) || (month == 11 && day <= 21) {
star = "天蝎座"
}
if (month == 11 && day >= 22) || (month == 12 && day <= 21) {
star = "射手座"
}
if (month == 12 && day >= 22) || (month == 1 && day <= 19) {
star = "魔蝎座"
}
return star
}
func main() {
y, m, d := GetTimeFromStrDate("1986-06-18")
fmt.Println(GetAge(y)) // 获取年龄
fmt.Println(GetConstellation(m, d)) // 星座
fmt.Println(GetZodiac(y)) // 生肖
}
相关文章
- JavaScript日期集合(今日,昨日,本周一,周末 ,月初,月末)
- 问题-[Delphi7]程序在WIN7电脑上的日期错误处理
- windows10如何设置只显示时间不显示日期
- Java实现蓝桥杯日期问题
- js 比较两个日期的大小的例子
- mysql--SQL编程(关于mysql中的日期,关于重叠) 学习笔记2.2
- Android中对日期进行排序
- python日期操作
- 03基础自绘-14滑动日期-tumblerdatetime
- SAP UI5日期字段关于时区GMT的处理
- MySQL关于根据日期查询数据的sql语句
- Python之pandas:对dataframe数据的时间日期格式类型字段进行标准化变换(比如将日期类型字段格式2014/1/1转换为2014-1-1)之详细攻略
- javascript 添加行,删除行,datepicker获取当前日期和上一个月日期并设置格式,笔记
- Leetcode 1507. 转变日期格式
- sqlite 日期型 字符串转为日期型
- 5.2 calendar--通用日期的相关函数(4)
- Java如何获取URL连接的日期?
- 判断日期大小-ios手机返回日期格式NaN