- fix: Correct sun.TrueBo calculation, now using basic.HSunTrueBo for correct solar latitude

- fix: Rename GetSunDownTime to GetSunSetTime in basic/sun.go and update related calls/outputs
- fix: Update test cases to use new method and error constant names

- improve: Rename all DownTime/Down functions to SetTime/Set for consistency
- improve: Standardize ERR_XXX_NEVER_DOWN error constants to ERR_XXX_NEVER_SET, with ERR_XXX_NEVER_DOWN kept as compatibility alias
- improve: More standard naming for interfaces and errors to improve maintainability and readability
This commit is contained in:
兔子 2025-09-08 10:59:04 +08:00
parent 126cf68cab
commit 438f1700c7
Signed by: b612
GPG Key ID: 99DD2222B612B612
11 changed files with 41 additions and 19 deletions

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_JUPITER_NEVER_RISE = errors.New("ERROR:极夜,木星今日永远在地平线下!") ERR_JUPITER_NEVER_RISE = errors.New("ERROR:极夜,木星今日永远在地平线下!")
ERR_JUPITER_NEVER_SET = errors.New("ERROR:极昼,木星今日永远在地平线上!") ERR_JUPITER_NEVER_SET = errors.New("ERROR:极昼,木星今日永远在地平线上!")
// ERR_JUPITER_NEVER_DOWN deprecated -- use ERR_JUPITER_NEVER_SET instead // ERR_JUPITER_NEVER_DOWN deprecated: -- use ERR_JUPITER_NEVER_SET instead
ERR_JUPITER_NEVER_DOWN = ERR_JUPITER_NEVER_SET ERR_JUPITER_NEVER_DOWN = ERR_JUPITER_NEVER_SET
) )
@ -129,7 +129,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated -- use SetTime instead // deprecated: -- use SetTime instead
// DownTime 落下时间 // DownTime 落下时间
// date取日期时区忽略 // date取日期时区忽略
// lon经度东正西负 // lon经度东正西负

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_MARS_NEVER_RISE = errors.New("ERROR:极夜,火星今日永远在地平线下!") ERR_MARS_NEVER_RISE = errors.New("ERROR:极夜,火星今日永远在地平线下!")
ERR_MARS_NEVER_SET = errors.New("ERROR:极昼,火星今日永远在地平线上!") ERR_MARS_NEVER_SET = errors.New("ERROR:极昼,火星今日永远在地平线上!")
// ERR_MARS_NEVER_DOWN deprecated -- use ERR_MARS_NEVER_SET instead // ERR_MARS_NEVER_DOWN deprecated: -- use ERR_MARS_NEVER_SET instead
ERR_MARS_NEVER_DOWN = ERR_MARS_NEVER_SET ERR_MARS_NEVER_DOWN = ERR_MARS_NEVER_SET
) )
@ -129,7 +129,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated -- use SetTime instead // deprecated: -- use SetTime instead
// DownTime 落下时间 // DownTime 落下时间
// date取日期时区忽略 // date取日期时区忽略
// lon经度东正西负 // lon经度东正西负

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_MERCURY_NEVER_RISE = errors.New("ERROR:极夜,水星今日永远在地平线下!") ERR_MERCURY_NEVER_RISE = errors.New("ERROR:极夜,水星今日永远在地平线下!")
ERR_MERCURY_NEVER_SET = errors.New("ERROR:极昼,水星今日永远在地平线上!") ERR_MERCURY_NEVER_SET = errors.New("ERROR:极昼,水星今日永远在地平线上!")
// ERR_MERCURY_NEVER_DOWN deprecated -- use ERR_MERCURY_NEVER_SET instead // ERR_MERCURY_NEVER_DOWN deprecated: -- use ERR_MERCURY_NEVER_SET instead
ERR_MERCURY_NEVER_DOWN = ERR_MERCURY_NEVER_SET ERR_MERCURY_NEVER_DOWN = ERR_MERCURY_NEVER_SET
) )
@ -129,7 +129,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated -- use SetTime instead // deprecated: -- use SetTime instead
// DownTime 落下时间 // DownTime 落下时间
// date取日期时区忽略 // date取日期时区忽略
// lon经度东正西负 // lon经度东正西负

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_MOON_NEVER_RISE = errors.New("ERROR:极夜,月亮在今日永远在地平线下!") ERR_MOON_NEVER_RISE = errors.New("ERROR:极夜,月亮在今日永远在地平线下!")
ERR_MOON_NEVER_SET = errors.New("ERROR:极昼,月亮在今日永远在地平线上!") ERR_MOON_NEVER_SET = errors.New("ERROR:极昼,月亮在今日永远在地平线上!")
// ERR_MOON_NEVER_DOWN deprecated -- use ERR_MOON_NEVER_SET instead // ERR_MOON_NEVER_DOWN deprecated: -- use ERR_MOON_NEVER_SET instead
ERR_MOON_NEVER_DOWN = ERR_MOON_NEVER_SET ERR_MOON_NEVER_DOWN = ERR_MOON_NEVER_SET
ERR_NOT_TODAY = errors.New("ERROR:月亮已在(昨日/明日)(升起/降下)") ERR_NOT_TODAY = errors.New("ERROR:月亮已在(昨日/明日)(升起/降下)")
) )
@ -171,7 +171,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated -- use SetTime instead // deprecated: -- use SetTime instead
// DownTime 落下时间 // DownTime 落下时间
// date取日期时区忽略 // date取日期时区忽略
// lon经度东正西负 // lon经度东正西负

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_NEPTUNE_NEVER_RISE = errors.New("ERROR:极夜,海王星今日永远在地平线下!") ERR_NEPTUNE_NEVER_RISE = errors.New("ERROR:极夜,海王星今日永远在地平线下!")
ERR_NEPTUNE_NEVER_SET = errors.New("ERROR:极昼,海王星今日永远在地平线上!") ERR_NEPTUNE_NEVER_SET = errors.New("ERROR:极昼,海王星今日永远在地平线上!")
// ERR_NEPTUNE_NEVER_DOWN deprecated -- use ERR_NEPTUNE_NEVER_SET instead // ERR_NEPTUNE_NEVER_DOWN deprecated: -- use ERR_NEPTUNE_NEVER_SET instead
ERR_NEPTUNE_NEVER_DOWN = ERR_NEPTUNE_NEVER_SET ERR_NEPTUNE_NEVER_DOWN = ERR_NEPTUNE_NEVER_SET
) )
@ -129,7 +129,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated -- use SetTime instead // deprecated: -- use SetTime instead
// DownTime 落下时间 // DownTime 落下时间
// date取日期时区忽略 // date取日期时区忽略
// lon经度东正西负 // lon经度东正西负

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_SATURN_NEVER_RISE = errors.New("ERROR:极夜,木星今日永远在地平线下!") ERR_SATURN_NEVER_RISE = errors.New("ERROR:极夜,木星今日永远在地平线下!")
ERR_SATURN_NEVER_SET = errors.New("ERROR:极昼,木星今日永远在地平线上!") ERR_SATURN_NEVER_SET = errors.New("ERROR:极昼,木星今日永远在地平线上!")
// ERR_SATURN_NEVER_DOWN deprecated -- use ERR_SATURN_NEVER_SET instead // ERR_SATURN_NEVER_DOWN deprecated: -- use ERR_SATURN_NEVER_SET instead
ERR_SATURN_NEVER_DOWN = ERR_SATURN_NEVER_SET ERR_SATURN_NEVER_DOWN = ERR_SATURN_NEVER_SET
) )
@ -129,7 +129,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated -- use SetTime instead // deprecated: -- use SetTime instead
// DownTime 落下时间 // DownTime 落下时间
// date取日期时区忽略 // date取日期时区忽略
// lon经度东正西负 // lon经度东正西负

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_STAR_NEVER_RISE = errors.New("ERROR:极夜,星星在今日永远在地平线下!") ERR_STAR_NEVER_RISE = errors.New("ERROR:极夜,星星在今日永远在地平线下!")
ERR_STAR_NEVER_SET = errors.New("ERROR:极昼,星星在今日永远在地平线上!") ERR_STAR_NEVER_SET = errors.New("ERROR:极昼,星星在今日永远在地平线上!")
// ERR_STAR_NEVER_DOWN deprecated -- use ERR_STAR_NEVER_SET instead // ERR_STAR_NEVER_DOWN deprecated: -- use ERR_STAR_NEVER_SET instead
ERR_STAR_NEVER_DOWN = ERR_STAR_NEVER_SET ERR_STAR_NEVER_DOWN = ERR_STAR_NEVER_SET
) )
@ -59,7 +59,7 @@ func RiseTime(date time.Time, ra, dec, lon, lat, height float64, aero bool) (tim
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated -- use SetTime instead // deprecated: -- use SetTime instead
// DownTime 星星降落时间 // DownTime 星星降落时间
// //
// date, 世界时(忽略此处时区) // date, 世界时(忽略此处时区)

View File

@ -10,7 +10,7 @@ import (
var ( var (
ERR_SUN_NEVER_RISE = errors.New("ERROR:极夜,太阳在今日永远在地平线下!") ERR_SUN_NEVER_RISE = errors.New("ERROR:极夜,太阳在今日永远在地平线下!")
ERR_SUN_NEVER_SET = errors.New("ERROR:极昼,太阳在今日永远在地平线上!") ERR_SUN_NEVER_SET = errors.New("ERROR:极昼,太阳在今日永远在地平线上!")
// ERR_SUN_NEVER_DOWN deprecated -- use ERR_SUN_NEVER_RISE instead // ERR_SUN_NEVER_DOWN deprecated: -- use ERR_SUN_NEVER_RISE instead
ERR_SUN_NEVER_DOWN = ERR_SUN_NEVER_SET ERR_SUN_NEVER_DOWN = ERR_SUN_NEVER_SET
ERR_TWILIGHT_NOT_EXISTS = errors.New("ERROR:今日晨昏朦影不存在!") ERR_TWILIGHT_NOT_EXISTS = errors.New("ERROR:今日晨昏朦影不存在!")
) )
@ -54,7 +54,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated -- use SetTime instead // deprecated: -- use SetTime instead
// DownTime 太阳落下时间 // DownTime 太阳落下时间
// date当地时区日期务必做时区修正 // date当地时区日期务必做时区修正
// lon经度东正西负 // lon经度东正西负

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_URANUS_NEVER_RISE = errors.New("ERROR:极夜,天王星今日永远在地平线下!") ERR_URANUS_NEVER_RISE = errors.New("ERROR:极夜,天王星今日永远在地平线下!")
ERR_URANUS_NEVER_SET = errors.New("ERROR:极昼,天王星今日永远在地平线上!") ERR_URANUS_NEVER_SET = errors.New("ERROR:极昼,天王星今日永远在地平线上!")
// ERR_URANUS_NEVER_DOWN deprecated -- use ERR_URANUS_NEVER_SET instead // ERR_URANUS_NEVER_DOWN deprecated: -- use ERR_URANUS_NEVER_SET instead
ERR_URANUS_NEVER_DOWN = ERR_URANUS_NEVER_SET ERR_URANUS_NEVER_DOWN = ERR_URANUS_NEVER_SET
) )
@ -129,6 +129,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated: -- use SetTime instead
// DownTime 落下时间 // DownTime 落下时间
// date取日期时区忽略 // date取日期时区忽略
// lon经度东正西负 // lon经度东正西负
@ -136,6 +137,16 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
// height高度 // height高度
// aerotrue时进行大气修正 // aerotrue时进行大气修正
func DownTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, error) { func DownTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, error) {
return SetTime(date, lon, lat, height, aero)
}
// SetTime 落下时间
// date取日期时区忽略
// lon经度东正西负
// lat纬度北正南负
// height高度
// aerotrue时进行大气修正
func SetTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, error) {
var err error var err error
var aeroFloat float64 var aeroFloat float64
if aero { if aero {

View File

@ -11,7 +11,7 @@ import (
var ( var (
ERR_VENUS_NEVER_RISE = errors.New("ERROR:极夜,金星今日永远在地平线下!") ERR_VENUS_NEVER_RISE = errors.New("ERROR:极夜,金星今日永远在地平线下!")
ERR_VENUS_NEVER_SET = errors.New("ERROR:极昼,金星今日永远在地平线上!") ERR_VENUS_NEVER_SET = errors.New("ERROR:极昼,金星今日永远在地平线上!")
// ERR_VENUS_NEVER_DOWN deprecated -- use ERR_VENUS_NEVER_SET instead // ERR_VENUS_NEVER_DOWN deprecated: -- use ERR_VENUS_NEVER_SET instead
ERR_VENUS_NEVER_DOWN = ERR_VENUS_NEVER_SET ERR_VENUS_NEVER_DOWN = ERR_VENUS_NEVER_SET
) )
@ -129,6 +129,7 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
return basic.JDE2DateByZone(riseJde, date.Location(), true), err return basic.JDE2DateByZone(riseJde, date.Location(), true), err
} }
// deprecated: -- use SetTime instead
// DownTime 落下时间 // DownTime 落下时间
// date取日期时区忽略 // date取日期时区忽略
// lon经度东正西负 // lon经度东正西负
@ -136,6 +137,16 @@ func RiseTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, e
// height高度 // height高度
// aerotrue时进行大气修正 // aerotrue时进行大气修正
func DownTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, error) { func DownTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, error) {
return SetTime(date, lon, lat, height, aero)
}
// SetTime 落下时间
// date取日期时区忽略
// lon经度东正西负
// lat纬度北正南负
// height高度
// aerotrue时进行大气修正
func SetTime(date time.Time, lon, lat, height float64, aero bool) (time.Time, error) {
var err error var err error
var aeroFloat float64 var aeroFloat float64
if aero { if aero {

View File

@ -10,5 +10,5 @@ func TestVenus(t *testing.T) {
date := time.Now().Add(time.Hour * -24) date := time.Now().Add(time.Hour * -24)
fmt.Println(CulminationTime(date, 115)) fmt.Println(CulminationTime(date, 115))
fmt.Println(RiseTime(date, 115, 23, 0, false)) fmt.Println(RiseTime(date, 115, 23, 0, false))
fmt.Println(DownTime(date, 115, 23, 0, false)) fmt.Println(SetTime(date, 115, 23, 0, false))
} }