匿名さんからのコメントで、jQuery UI Datepickerの複数カレンダー(numberOfMonths)の場合にGCalendar Holidaysで1つ目の月しか祝日が表示されないことを教えてもらったので、複数カレンダーでも祝日が表示されるようにアップデートしました。バージョン0.5.0です。
GoogleカレンダーからJSONPで日本の祝日一覧を取得 – GCalendar Holidays [ゼロと無限の間に]
GCalendar Holidaysの更新は久しぶりです。
それにしても、Googleカレンダーの祝日から今年の春分の日が消えているのはなぜだろう。この間まで表示されてた気がするけどなあ…。
GCalendar Holidaysを便利に使わせていただいてます。
このライブラリを使用して、毎週設定されているカレンダーが正しく表示されていなかったので、
誠に勝手ながらフィードバックさせていただきます。
毎週設定されている物はどうやらgdata.feed.entryのlengthが1で、
全部gdata.feed.entry.gd$whenにまとめられていました。
そこで、GCalHolidays._entries2daysの
for (var i = 0; i 1){
for (var i=0; i < entries[0].gd$when.length;i++){
var ymd = entries[0].gd$when[i].startTime.split("T")[0].split("-");
var title = entries[0].title.$t;
//年月日は使いやすいように数値にする
days[i] = { year: ymd[0] * 1, month: ymd[1] * 1, date: ymd[2] * 1, title: title };
}
}else{
for (var i = 0; i < len; i++) {
var ymd = entries[i].gd$when[0].startTime.split("T")[0].split("-");
var title = entries[i].title.$t;
//年月日は使いやすいように数値にする
days[i] = { year: ymd[0] * 1, month: ymd[1] * 1, date: ymd[2] * 1, title: title };
}
}
以上のように改変させていただきました。
今後の修正の参考にしていただければ幸いです。
コメントに正しくソースが記述されてなかったので・・・
GCalHolidays._entries2daysメソッドの
entriesのlengthを条件にループしているところを
if(entries.length == 1 && entries[0].gd$when.length > 1)の条件を加えてます。
if文の中身はymdに代入する値を変えている以外は処理は同じです。
うまくソースがはれなかったみたいですいません;
rainさん、コメントありがとうございます。
コードの改善方法まで教えて頂いてありがとうございます!
どこかのタイミングで取り込ませて頂こうと思います…。
コメントのソースの一部が消えたのはきっとWordPressのせいですね。
codeタグで囲めば大丈夫だったりするんですかね。
↓
for (var i = 0; i < foo.length; i++) { bar(); }
対応しました!
http://0-oo.net/log/javascript/google-calendar-holidays/repeat/