数値文字列の桁を揃えて表示する


 HSP(HSP3)の標準対応に「gettime関数」があります。現在の日付、時刻、曜日なんかを取得できるものです。これで得られた結果をそのまんま表示するとなると、文字数(数値の桁)が変動することになります。


 たとえば、下のサンプルソースで「1時2分5秒」だったら全体の文字数が5文字の表示、「12時10分30秒」だったら8文字の表示、となるわけです。



 repeat
  mes ""+gettime(4)+":"+gettime(5)+":"+gettime(6)


  wait 100
 loop


 もし最大の8文字の表示を常に維持したかったら、標準対応の「strf関数」を使って、文字列の整形処理を行います。


 まずは、半角スペースを付け足して2桁表示を維持するサンプルソース。



; 要 HSP 3.2 ~

 repeat
  mes strf("%2d:%2d:%2d", gettime(4), gettime(5), gettime(6))


  wait 100
 loop


  次に、「0」を付け足し。



; 要 HSP 3.2 ~

 repeat
  mes strf("%02d:%02d:%02d", gettime(4), gettime(5), gettime(6))


  wait 100
 loop