// Code generated by modernc.org/undup from the per-target sqlite_*.go files; DO NOT EDIT. //go:build (freebsd && arm) || (linux && arm) || (linux && arm64) || (linux && ppc64le) || (linux && riscv64) || (linux && s390x) || (openbsd && arm64) package sqlite3 import ( "unsafe" "modernc.org/libc" ) // C documentation // // /* // ** Compute the Year, Month, and Day from the julian day number. // */ func _computeYMD(tls *libc.TLS, p uintptr) { var A, B, C, D, E, X1, Z, alpha, v1 int32 _, _, _, _, _, _, _, _, _ = A, B, C, D, E, X1, Z, alpha, v1 if (*TDateTime)(unsafe.Pointer(p)).FvalidYMD != 0 { return } if !((*TDateTime)(unsafe.Pointer(p)).FvalidJD != 0) { (*TDateTime)(unsafe.Pointer(p)).FY = int32(2000) (*TDateTime)(unsafe.Pointer(p)).FM = int32(1) (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) } else { if !(_validJulianDay(tls, (*TDateTime)(unsafe.Pointer(p)).FiJD) != 0) { _datetimeError(tls, p) return } else { Z = int32(((*TDateTime)(unsafe.Pointer(p)).FiJD + libc.Int64FromInt32(43200000)) / libc.Int64FromInt32(86400000)) alpha = int32((float64(Z)+libc.Float64FromFloat64(32044.75))/libc.Float64FromFloat64(36524.25)) - int32(52) A = Z + int32(1) + alpha - (alpha+int32(100))/int32(4) + int32(25) B = A + int32(1524) C = int32((float64(B) - libc.Float64FromFloat64(122.1)) / libc.Float64FromFloat64(365.25)) D = int32(36525) * (C & int32(32767)) / int32(100) E = int32(float64(B-D) / libc.Float64FromFloat64(30.6001)) X1 = int32(float64(libc.Float64FromFloat64(30.6001) * float64(E))) (*TDateTime)(unsafe.Pointer(p)).FD = B - D - X1 if E < int32(14) { v1 = E - int32(1) } else { v1 = E - int32(13) } (*TDateTime)(unsafe.Pointer(p)).FM = v1 if (*TDateTime)(unsafe.Pointer(p)).FM > int32(2) { v1 = C - int32(4716) } else { v1 = C - int32(4715) } (*TDateTime)(unsafe.Pointer(p)).FY = v1 } } (*TDateTime)(unsafe.Pointer(p)).FvalidYMD = uint8(1) }