2012-04-17 9 views
1

数字を生成し、それをテキストボックスに設定するスクリプトがあります。たとえば、数字が6.3の場合、これを6年4か月に変換できるようにしたいと考えています。数字を年月に変換する最も簡単な方法

これを行う簡単な方法はありますか?

+0

出力はどのくらいですか?文字列 ? 2つの数字? 6.3 = 6年** ** 4 **月はどうですか? – ManseUK

答えて

1
var n = 6.3; 
var y = Math.floor(n);   // whole years 
var m = Math.floor(12 * (n - y)); // treat remainder as fraction of a year 

これは、月に3を与え、4にはならないことに注意してください。なぜ、6.3が4か月を与えるべきだと思いますか? 6年4ヶ月は6.333333年です。

1

あなたの入力から日付/数字を作成するか、数字を分割して文字列を作成するかどうか本当にわかりませんか?私は第二のものに行きました!

var number = 6.3; 
var splitstring = number.toString().split('.'); 
var years = splitstring[0]; 
var months = splitstring[1]; 
alert(years + ' years,' + months + ' months');​ 

Working example here

0
function getDescription(str) 
{ 
    var description = ""; 
    var years = 0; 
    var months = 0; 
    var splits = str.split('.'); 
    if(splits.length >= 1) 
    { 
     years = parseInt(splits[0]); 
    } 
    if(splits.length >= 2) 
    { 
     months = parseInt(splits[1]); 
    } 
    return years + ' years' + ' ' + months + ' months'; 
} 

コール

getDescription('6.3'); 

又は

getDescription(document.getElementById('my_textbox').value); 
0
var num = 8.62; 
console.log("%d year/s and %d month/s", ~~num, ~~((num - ~~num)*12)); 
/* 8 year/s and 7 month/s */ 
0
var n = 6.3 
var years = Math.floor(n); 
var months = Math.round((n * 12) % 12); 

%はモジュラスを意味し、除算の残りの部分を返します。ラウンドは数値を最も近い整数に丸めます。

  • ラウンド(3.6)4ヶ月戻ります

    そう...

    • Math.floor(6.3)
    • (6.3 * 12)%12 3.6ヶ月を返します6年が返されますこれはなぜ6.3 年が6年4か月のような理由を説明します。
  • 関連する問題