無窮 i ラボ Blog

知的ネット社会、知そのもの、機械との共生、プログラミングに関して。

 
 

(1) 文字型の日付 yyyymmdd2 が 文字型の日付 yyyymmdd1 の何日後かを返すfunction
(例えば、DateSpan ('20150331', '20150402')= 3 ):

function DateSpan (yyyymmdd1, yyyymmdd2) {
// yyyymmdd1, yyyymmdd2 は文字列、スラッシュなし。
var myDate1 = new Date();
var myDate2 = new Date();
var span;
var yyyy1 = yyyymmdd1.substring(0,4) -0;
// マイナスじゃないとダメ。
var mm1 = yyyymmdd1.substring(4,6) -0;
var dd1 = yyyymmdd1.substring(6,8) -0;

var yyyy2 = yyyymmdd2.substring(0,4) -0;
// マイナスじゃないとダメ。
var mm2 = yyyymmdd2.substring(4,6) -0;
var dd2 = yyyymmdd2.substring(6,8) -0;
// ---
myDate1.setFullYear(yyyy1);
// 年月日の順でsetしていく。
// そのようにせず、年日月の順にsetすると、
// 例えば、今日が 4月の場合、
// myDate1 に 「2015/3/31」をsetしようとして、
// 「2015年」、「31日」をsetした時点で、
// 実在しない日付「2015/ 4/31」がsetされ、
// 「2015/ 5/1」に自動変換されるため、
// 最終的に myDate1 は、「2015/3/1」になってしまう。
myDate1.setMonth(mm1 -1) ;
myDate1.setDate(dd1);

myDate2.setFullYear(yyyy2);
myDate2.setMonth(mm2 -1) ;
myDate2.setDate(dd2);

span = myDate1.getTime() - myDate2.getTime();

span = Math.round( span /(24 * 60 * 60 * 1000));

return ( span );
}


(2) 文字型の日付 yyyymmdd の plus 日後の日付を文字型を返すfunction
(例えば、DateAdd ('20150331', 3)= '20150402' ):

function DateAdd (yyyymmdd, plus) {
// yyyymmdd・返り値 は文字列、スラッシュなし。
var myDate = new Date();
myDate.setDate(1);
// 最初に「1日」を設定する。
//
// そうしないと、今日が 2015/ 5/31 の場合、
// 後で「2015/ 2/15」を設定しようとすると、
// myDate に「2015年」「2月」を設定した時点で
// 実在しない日付「2015/ 2/31」がsetされ、
// myDate が、その日に相当する「2015/ 3/ 3」に
// なってしまう。
//
// 最後にmyDate に「15日」を設定すると、myDateは
// 「2015/ 3/15」になり、設定しようとしていた
// 「2015/ 2/ 15」とは異なってしまう。
var myDate2 = new Date();
myDate2.setDate(1);
var yyyy = yyyymmdd.substring(0,4) -0;
// マイナスじゃないとダメ。
var mm = yyyymmdd.substring(4,6) -0;
var dd = yyyymmdd.substring(6,8) -0;
var yyyymmdd2num = 0;
// ---
myDate.setFullYear(yyyy);
myDate.setMonth(mm -1) ;
myDate.setDate(dd);

myDate2.setTime( myDate.getTime() + 24 * 60 * 60 * 1000 * plus );

yyyy = myDate2.getFullYear();
mm = myDate2.getMonth() +1 ;
dd = myDate2.getDate();

yyyymmdd2num = dd + mm*100 + yyyy*10000;

return ( yyyymmdd2num + "" );
}
スポンサーサイト
 このエントリーをはてなブックマークする このエントリーを含むはてなブックマーク  
  
 
 
■  ■  ■

 
本文へは上スクロールしてください












管理者にだけ表示

トラックバックURL↓
http://nhm.blog75.fc2.com/tb.php/625-d999c9b2

新しいトラックバックほど上に表示されます。