2016-04-18 15 views
0

私は、年の初めに0から始まって毎日3+を追加し、最後に+37を追加するスクリプトを作成しています。月。さらに、うるう年を考慮に入れなければなりません。これは毎月同じ番号と1つの数字を追加するスクリプト

// Calculate new members since Jan 1st 2016 
var initialDate = new Date(2016, 0, 1); // Jan 1st 2016 
var now = Date.now(); 
var difference = 3 * (now - initialDate); 
var millisecondsPerDay = 24 * 60 * 60 * 1000; 
var daysSince = Math.floor(difference/millisecondsPerDay); 

// Write result to HTML 
document.getElementById('members_since').innerHTML = daysSince; 

は、私は非常にJavascriptのだと私はどのように毎月末に口座うるう年と37に取るには考えている...私はこれまで持っているものです。どんな指導も大歓迎です。

+0

ようこそ。何をどのように尋ねるかを確認するには、[ヘルプ]をご覧ください。ヒント:あなたが欲しいものをほとんど実行し、次に期待されていることを正確に伝えるサンプル(スニペット)を表示します。たとえば、あなたはそれが解決できると思う方法を説明するのではなく、あなたが探しているものを説明することができますか?あなたの質問には、うるう年を考慮に入れる必要があることは何もありません – mplungjan

答えて

0

日付の差異を計算する多くの複製がありますが、おそらくこのようなものが必要ですか?

var aDay = 24*60*60*1000, 
     today = new Date(), 
     jan_first = new Date(today.getFullYear(),0,1,12,0,0,0).getTime(); 
today.setHours(12,0,0,0); 
var endOfThisMonth = new Date(today.getFullYear(), 
     today.getMonth()+1,0,12,0,0), 
     diff=today.getTime()-jan_first, 
     total=Math.round(diff/aDay)*3; 
total+=today.getMonth()*37; 
if (today.getTime()==endOfThisMonth) total+=37; 
+0

数字は企業で助けられているメンバーの数を表し、基本的には毎日+3の計算式を出しました(年初からゼロから始まります)月末に+37を追加します。これまでのところ、私は+3の部分があるように感じますが、2016年がうるう年であることを考慮していません。 –

+0

テストされていないアップデートを見てください。あなたのアルゴリズムは推測ですので、うるう年を処理すると推測が非常に正確です;)しかし、絶対的な日を使用しているので、私のコードはそれを処理します – mplungjan

+0

ありがとう!!!このアルゴリズムは、偶然にも年初に再開されますか? –

関連する問題