カレンダーを作るスクリプトの一つとして2
カレンダーを作るスクリプトの一つとしての改良版です。
カスタムしやすいように設計したつもり。
カレンダー生成部分は切りはなしました。
cal.js
// function cal(y,m){ var today_date = new Date(); var y = y ? y : today_date.getFullYear(); var m = m ? m : today_date.getMonth()+1; var cal_month_days_num = function (year,month){ var tmpDt = new Date(year,month); tmpDt.setTime(tmpDt.getTime()); return tmpDt.getDate(); } return { year : y , month : m , max : cal_month_days_num(y , m), start : new Date(y,m-1,1).getDay() }; }
この選択したものを表のようにあつかうため?のクラス(hvg.js)も使用。
/* #includepath 'path to lib' */ #include 'hvg.js'; #include 'cal.js'; //Making CMYK cmyk = function(c,m,y,k){ var cmyk = new CMYKColor(); cmyk.cyan = c; cmyk.magenta = m; cmyk.yellow = y; cmyk.black = k; return cmyk; } var CR = String.fromCharCode(13); var month = 1; // var KYU = new cmyk(0,100,100,0); //カスタム用 // eval(getURL('')); // eval(getFILE('custum.txt')); var custum = { '1-1' : [KYU,'元旦'], '1-12' : [KYU,'成人の日'], '2-11' : [KYU,'建国記念の日'], '3-20' : [KYU,'春分の日'], '4-29' : [KYU,'昭和の日'], }; hvg(app.activeDocument.selection).each(function(z){ var cald = cal(2009,month++); days = new hvg(z.textFrames); for(var i = 0 ; i < cald.start; i++)days.next().contents = " "; for(var i = 0 ; i < cald.max; i++){ //ここに処理を書く XX = days.next(); XX.contents = i+1; if(CDATA = custum[(month-1).toString() + '-' + XX.contents]){ XX.textRange.fillColor = CDATA[0]; XX.contents = XX.contents + CR + CDATA[1]; XX.paragraphs[1].size = 6; } } while(x = days.next())x.contents = " "; });
自分用にはこれで完成のつもり。