星座
星座
var (
constellations = []string{
"Capricorn", // 摩羯座,12月22日~1月19日
"Aquarius", // 水瓶座,1月20日~2月18日
"Pisces", // 双鱼座,2月19日~3月20日
"Aries", // 白羊座,3月21日~4月19日
"Taurus", // 金牛座,4月20日~5月20日
"Gemini", // 双子座,5月21日~6月21日
"Cancer", // 巨蟹座,6月22日~7月22日
"Leo", // 狮子座,7月23日~8月22日
"Virgo", // 处女座,8月23日~9月22日
"Libra", // 天秤座,9月23日~10月23日
"Scorpio", // 天蝎座,10月24日~11月22日
"Sagittarius", // 射手座,11月23日~12月21日
"Capricorn",
}
criteria = []int{22, 20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22}
)
func Constellation(month, day int) string {
if day < criteria[month] {
return constellations[month-1]
}
return constellations[month]
}
Try it
func main() {
d := time.Date(time.Now().Year(), time.January, 1, 0, 0, 0, 0, time.Local)
for i := 0; i < 366; i++ {
date := d.AddDate(0, 0, i)
constellation := Constellation(int(date.Month()), date.Day())
fmt.Printf("%s \t %s \n", constellation, date.Format("2006-01-02"))
}
}
时针分针重合
把时针和分针的运动,看成 AB 两个人在圆形跑道进行追赶比赛。
AB 两人从同一起跑线开始跑,24 小时内,A(代表时针)跑了 2 圈,B(代表分针)跑了 24 圈。B 多跑了 22 圈,即超过 A22 次。
重合时间:
0:00 | 01:06 | 02:12 | 03:17 | 04:22 | 05:27 | 06:33 | 07:38 | 08:43 | 09:49 | 10:54 |
12:00 | 13:06 | 14:12 | 15:17 | 16:22 | 17:27 | 18:33 | 19:38 | 20:43 | 21:49 | 22:54 |
时针速度 w1 = 30/60 = 0.5(°/min)
分针速度 w2 = 360/60 = 6(°/min)
6t = 0.5t + 360n
t = 720n/11, t < = 24 x 60
即 n <= 22