imasara2script
WSHやHTAなどのプログラムサンプルの公開用ブログ
2017年4月2日日曜日
時間の長さに適した単位をつけた文字列を返す関数
用途・目的
Dateオブジェクトを扱う際は単位がミリ秒の数値を扱うことが多いですが、ユーザーに見せる内容はミリ秒単位だと値が大きすぎてスケールが把握しづらいです。
分単位なのか、時間単位なのか、もっと大きな単位の数字なのかが分かり易い文字列を返す関数を作成しました。
ソース
time単位=function(ミリ秒){ // 値の大きさに応じて「秒」「分」「時間」などの単位に直した文字列を返す。 var f=function(){return Math.round(ミリ秒/1000/num*10)/10}, num=1 if(ミリ秒 < 1000 * 60){return f()+'秒'} if(ミリ秒 < 1000 * 60 * (num=60)){return f()+'分'} if(ミリ秒 < 1000 * (num=60 * 60) * 24){return f()+'時間'} if(ミリ秒 < 1000 * (num=60 * 60 * 24) * 7){return f()+'日'} if(ミリ秒 < 1000 * (num=60 * 60 * 24) * 31){return f(num*=7)+'週'} if(ミリ秒 < 1000 * (num=60 * 60 * 24) * 365){return f(num*=31)+'月'} num = 60 * 60 * 24 * 365 return f()+'年' }
サンプル
time単位=function(ミリ秒){ // 値の大きさに応じて「秒」「分」「時間」などの単位に直した文字列を返す。 var f=function(){return Math.round(ミリ秒/1000/num*10)/10}, num=1 if(ミリ秒 < 1000 * 60){return f()+'秒'} if(ミリ秒 < 1000 * 60 * (num=60)){return f()+'分'} if(ミリ秒 < 1000 * (num=60 * 60) * 24){return f()+'時間'} if(ミリ秒 < 1000 * (num=60 * 60 * 24) * 7){return f()+'日'} if(ミリ秒 < 1000 * (num=60 * 60 * 24) * 31){return f(num*=7)+'週'} if(ミリ秒 < 1000 * (num=60 * 60 * 24) * 365){return f(num*=31)+'月'} num = 60 * 60 * 24 * 365 return f()+'年' } 入力 = prompt('数値をミリ秒単位で入力してください',1000 * 60 * 60 * 24) - 0 confirm(['入力:'+入力,'出力:'+time単位(入力)].join('\n'))
動作テスト
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿