음 알 구리라 (Umm AlQura) 달력에 따라 히 즐리 데이트를 그레고리 안 데이트로 변환하려고합니다. 나는 인터넷에서 많은 것을 발견하지 못했습니다 (어쩌면 저의 게으른 태도 때문일 수도 있습니다). 나는 Hijri 날짜를 줄리안 숫자로 변환 한 다음 줄리안 숫자에서 그레고리력으로 변환하려고했습니다.고지리는 골란의 그레고리력 날짜를
그러나 나는 단지 Hijri 날짜를 율리우스 숫자로 변환 할 수 있습니다. 줄리안 번호를 그레고리오로 변환하는 방법을 알 수 없습니다.
아니면 내가 잘못된 접근 방식을 취하고 있습니다. 누구든지 Umm AlQura 달력에 따라 Hijri 날짜를 golang의 태양력 날짜로 변환하는 데 도움을받을 수 있습니까?
이것은 내가 지금까지했습니다 것입니다 :
func getJulianNumber(y, m, d int) float64 {
if m == 1 || m == 2 {
y -= 1
m += 12
}
a := y/100
b := a/4
c := 2 - a + b
e := int(365.25 * (float64(y) + 4716))
f := int(30.6001 * (float64(m) + 1))
return float64(float64(c) + float64(d) + float64(e) + float64(f) - 1524.5)
}
func julianToH(jd float64) {
q := jd + 0.5
z := int(q)
w := int((float64(z) - 1867216.25)/36524.25)
x := w/4
a := int(float64(z) + 1 + float64(w) - float64(x))
b := a + 1524
c := int((float64(b) - 122.1)/365.25)
d := int(365.25 * float64(c))
e := int((float64(b) - float64(d))/30.6001)
f := int(30.6001 * float64(e))
day := int(float64(b) - float64(d) - float64(f) + (q - float64(z)))
var month, year int
e1 := e - 1
if e1 <= 12 {
month = e1
} else {
month = e - 3
}
if month == 1 || month == 2 {
year = int(c - 4715)
} else {
year = int(c - 4716)
}
fmt.Println(day, month, year)
}
많은 의무!
실행하려는 코드를 공유하십시오. – pltvs
수정 된 답변을 확인하십시오! –