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  }