github.com/archlabjp/eeslism-go@v0.0.0-20231109122333-4bb7bfcdf292/eeslism/u_ees3lb.go (about) 1 package eeslism 2 3 import ( 4 "fmt" 5 "math" 6 "os" 7 "unicode" 8 ) 9 10 // 文字列s が数値かどうかの判定 11 func isstrdigit(s string) bool { 12 for i := 0; i < len(s); i++ { 13 if !unicode.IsDigit(rune(s[i])) { 14 if s[i] != '.' && s[i] != '-' && s[i] != '+' { 15 return false 16 } 17 } 18 } 19 return true 20 } 21 22 /* 入力データエラーの出力 */ 23 func Errprint(err int, key string, s string) { 24 if err != 0 { 25 fmt.Printf(ERRFMTA, key, s) 26 if Ferr != nil { 27 fmt.Fprintf(Ferr, ERRFMTA, key, s) 28 } 29 } 30 } 31 32 func Eprint(key string, s string) { 33 fmt.Printf(ERRFMTA, key, s) 34 if Ferr != nil { 35 fmt.Fprintf(Ferr, ERRFMTA, key, s) 36 } 37 } 38 39 /* データの記憶域確保時のエラー出力 */ 40 func Ercalloc(n int, errkey string) { 41 s := fmt.Sprintf(" -- calloc n=%d", n) 42 Eprint(errkey, s) 43 } 44 45 func Preexit() { 46 var NSTOP int 47 fmt.Printf("Press Hit Return Key .......\n") 48 if NSTOP == 0 { 49 var buf [1]byte 50 os.Stdin.Read(buf[:]) 51 } else { 52 os.Exit(1) 53 } 54 } 55 56 func Lineardiv(A, B, dt float64) float64 { 57 return A + (B-A)*dt 58 } 59 60 // ttmmから1時間間隔の時刻へ変換する関数 61 // 0:01~1:00を1時(ここでは配列番号として0~23にしている)とする 62 func ConvertHour(ttmm int) int { 63 tt := int(math.Floor(float64(ttmm-1) / 100.)) 64 return tt 65 }