Merge remote-tracking branch 'origin/master'

This commit is contained in:
兔子 2025-09-08 10:40:37 +08:00
commit 126cf68cab
Signed by: b612
GPG Key ID: 99DD2222B612B612
3 changed files with 18 additions and 8 deletions

View File

@ -5,8 +5,12 @@ import (
"fmt"
"math"
"os"
"testing"
)
func TestGenerateMagic(t *testing.T) {
generateMagicNumber()
}
func generateMagicNumber() {
//0月份 00000 日期 0000闰月 0000000000000 农历信息
var tz = 8.0000 / 24.000
@ -14,6 +18,7 @@ func generateMagicNumber() {
spYear := make(map[int][]int)
var upper []uint16
var lower []uint16
var full []uint32
//var info uint32 = 0
for year := 1899; year <= 2401; year++ {
fmt.Println(year)
@ -89,13 +94,16 @@ func generateMagicNumber() {
}
for year := 1900; year <= 2400; year++ {
fmt.Println(year)
up, low := magicNumberSpilt(magicNumber(yearMap[year], spYear[year]))
magic := magicNumber(yearMap[year], spYear[year])
up, low := magicNumberSpilt(magic)
upper = append(upper, up)
lower = append(lower, uint16(low))
full = append(full, uint32(magic))
}
res := make(map[string]interface{})
res["up"] = upper
res["low"] = lower
res["full"] = full
d, _ := json.Marshal(res)
os.WriteFile("test.json", d, 0644)
}

View File

@ -4,6 +4,7 @@ import (
"b612.me/astro/tools"
"fmt"
"math"
"os"
"testing"
"time"
)
@ -162,17 +163,20 @@ func TestJQDate(t *testing.T) {
return math.Floor(d) + 0.5
}
c := 0
var info string
for year := 1900; year <= 2600; year++ {
for pos := 0; pos < 360; pos += 15 {
n := newGetJQTime(year, pos)
o := GetJQTime(year, pos)
n := newGetJQTime(year, pos) + 8.0/24.000000
o := GetJQTime(year, pos) + 8.0/24.0000000
if trimDay(n) != trimDay(o) {
c++
fmt.Printf("\"%d%03d\":%.0f,", year, pos, trimDay(o)-trimDay(n))
fmt.Printf("\"%d%03d\"=>%v %v\n", year, pos, JDE2Date(trimDay(o)), JDE2Date(trimDay(n)))
info += fmt.Sprintf("\"%d%03d\"=>%.0f,", year, pos, trimDay(o)-trimDay(n))
}
}
}
fmt.Println(c)
os.WriteFile("test.txt", []byte(info), 0644)
}
func newGetJQTime(Year, Angle int) float64 { //节气时间

View File

@ -34,10 +34,8 @@ func FloatRound(f float64, n int) float64 {
}
func Limit360(x float64) float64 {
for x > 360 {
x -= 360
}
for x < 0 {
x = math.Mod(x, 360)
if x < 0 {
x += 360
}
return x