github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/u_day.go (about) 1 /* ================================================================ 2 3 SUNLIB 4 5 太陽位置および日射量計算用ライブラリ- 6 (宇田川、パソコンによる空気調和計算法、プログラム4.1の C 言語版, ANSI C 版) 7 8 ---------------------------------------------------------------- */ 9 10 package eeslism 11 12 // Mo月No日が1月1日から数えて何日目か(通日)を返す 13 // 1月1日は1である。 14 func FNNday(Mo int, Nd int) int { 15 if Mo < 1 || Nd < 1 || Mo > 13 || Nd > 31 { 16 panic("適切な月日を指定してください。") 17 } 18 var Mo2, Mo3 int 19 if Mo < 3 { 20 Mo2 = 1 21 Mo3 = 0 22 } else { 23 Mo2 = 0 24 Mo3 = 1 25 } 26 return int((153*(Mo-1)+2*(Mo2)-9*(Mo3))/5 + Nd) 27 }