1/* 2 * jquery.holiday.js 3 * jQuery UI datepicker ç¨æ¥æ¬ã®ç¥ç¥æ¥ãã¼ã«ããã表示 4 * 5 * æ©è½ 6 * datepicker ã§è¡¨ç¤ºããããã¤ã¢ãã°ã«ç¥ç¥æ¥ã®è¡¨ç¤ºãä»å ãã¾ãã 7 * åè 8 * 西æ¦2007年以éãã2015å¹´ç¾å¨ã¾ã§ã®ç¥ç¥æ¥ã«å¯¾å¿ 9 * ï¼ã¤ã®Webãã¼ã¸å ã¯åãç¥ç¥æ¥ã®è¡¨ç¤ºã«ãªãã¾ãã 10 * ï¼ãã¼ã¸å ã®è¤æ°ã®datepickerãã¨ã«è¡¨ç¤ºå 容ã¯åãæ¿ãããã¾ãããï¼ 11 * ä½¿ãæ¹ 12 * <link rel="stylesheet" href="jquery.holiday.css"> 13 * <script src="jquery.holiday.js"></script> 14 * 15 * $('input.xxx').datepicker().holiday(); 16 * 17 * å°åã»è¨èªã®å¯¾å¿ 18 * ä»ã®å°åãè¨èªã®ããã«è¡¨ç¤ºãã¼ã¿ãå·®ãæ¿ãããã¨ãã§ãã¾ãã 19 * ãµã³ãã«ï¼ 20 * <script src="jquery.holiday_en-JP.js"></script> 21 * 22 * æ´æ°å±¥æ´ 23 * 2016-10-22 holiday("init")ã®éè¤å®è¡ã®ææ¢ãåçãªinputè¦ç´ ã®çæã«å¯¾å¿ã 24 */ 25 26(function($) { 27 var settings = {}; 28 var css = {}; 29 var holidays = {}; 30 var prepared = {}; 31 32 var methods = { 33 //åæå¦ç 34 init : function( options ) { 35 //datepicker ãã¼ããã§ã㯠36 if (!$.fn['datepicker']) { 37 return this; 38 } 39 40 //ãªãã·ã§ã³è¨å® 41 settings = $.extend( { 42 //ææ¥ãç¥ç¥æ¥ã®CSSã¹ã¿ã¤ã«ã¯ã©ã¹ 43 'css': [ 44 {'day':0, 'class':'day-sunday'}, //æ¥ææ¥ 45 {'day':6, 'class':'day-saturday'}, //åææ¥ 46 {'day':'holiday', 'class':'day-holiday'}, //ç¥ç¥æ¥ 47 {'day':'anniversary', 'class':'day-anniversary'} //è¨å¿µæ¥ 48 ], 49 //追å ããè¨å¿µæ¥ [{date:å¹´ææ¥, name:åç§°, class:CSSã¯ã©ã¹}] 50 'anniversary': [] 51 }, options); 52 53 //ã¹ã¿ã¤ã«ã®ç»é² 54 $.each(settings.css, function(key, val) { 55 if (typeof val['class']!="undefined") { 56 css[val['day']] = val['class']; 57 } 58 }); 59 60 //è¨å¿µæ¥ã®è¿½å 61 var attr; 62 $.each (settings.anniversary, function(key, val){ 63 attr = {}; 64 attr['name'] = val['name']; 65 if (typeof val['class']!="undefined") { 66 attr['class'] = val['class']; 67 } else if (typeof css['anniversary']!="undefined") { 68 attr['class'] = css['anniversary']; 69 } 70 holidays[val['date']] = attr; 71 }); 72 73 return this.each(function() { 74 if (typeof $(this).datepicker!="function") { 75 return true; 76 } 77 //åæåæ¸ã¿ãã§ã㯠78 if ($(this).data("holiday")) { 79 return true; 80 } 81 //åæåãã¼ã¿è¨å® 82 $(this).data("holiday", {init: true}); 83 84 //ç¥ç¥æ¥ã¨æ¥ä»ã¹ã¿ã¤ã«ã®è¨å® 85 $(this).datepicker("option", "beforeShowDay", function(day) { 86 var $self = $.fn.holiday; 87 var attr = $self("attr", day); 88 var dow = day.getDay(); 89 var title = ""; 90 if (typeof attr['name']!="undefined") { 91 title = attr['name']; 92 } 93 var style = ""; 94 if (title && typeof attr['class']!="undefined") { 95 style = attr['class']; //ç¥ç¥æ¥ãè¨å¿µæ¥ã®ã¹ã¿ã¤ã« 96 return false; //鏿ãç¡å¹åâ追å ç®æ 97} else if (dow==6) { //æ¥ææ¥ãå¤å®â追å ç®æ 98 return false; //鏿ãç¡å¹åâ追å ç®æ 99} else if (dow==0) { //æ¥ææ¥ãå¤å®â追å ç®æ 100 return false; //鏿ãç¡å¹åâ追å ç®æ 101} else if (typeof css[dow]!="undefined") { 102 style = css[dow]; //ææ¥ã®ã¹ã¿ã¤ã« 103} 104 105 return [true, style, title]; 106 }); 107 }); 108 109 }, 110 111 //çµäºå¦ç 112 destroy : function( ) { 113 return this.each(function() { 114 if (typeof $(this).datepicker!="function") { 115 return true; 116 } 117 //ç¥ç¥æ¥ã¨æ¥ä»ã¹ã¿ã¤ã«ã®é¤å» 118 $(this).datepicker("option", "beforeShowDay", null); 119 //åæåæ¸ã¿ãã¼ã¿æ¶å» 120 $(this).removeData("holiday"); 121 }); 122 }, 123 124 //ç¥ç¥æ¥ã®å±æ§ã®åå¾ 125 attr : function( day ) { 126 //æ¥ä»ãæåã®å ´åã¯Dateåã«å¤æããã
127 if (typeof day=="string") { 128 var match = day.match(/^(20\d{2})(\d{2})(\d{2})$/); 129 if (match) { 130 match.shift(); 131 day = new Date(match.join("/")); 132 } else { 133 day = new Date(day); 134 } 135 } 136 //ç¥ç¥æ¥ã®è¨ç® 137 var Y = day.getFullYear(); 138 var M = padzero(day.getMonth()+1); 139 if (typeof prepared[Y+M]=="undefined") { 140 prepare(Y, M); 141 } 142 //ç¥ç¥æ¥ã®ãã§ã㯠143 var YMD = day.getFullYear()+padzero(day.getMonth()+1)+padzero(day.getDate()); 144 if (typeof holidays[YMD]!="undefined") { 145 return holidays[YMD]; 146 } else { 147 return {}; 148 } 149 }, 150 151 //ç¥ç¥æ¥åã®åå¾ 152 name : function( day ) { 153 var attr = $.fn.holiday('attr', day); 154 if (typeof attr['name']=="undefined") { 155 return ""; 156 } else { 157 return attr['name']; 158 } 159 }, 160 161 //ç¥ç¥æ¥ä¸è¦§ 162 list : function() { 163 return holidays; 164 }, 165 166 //ç¥ç¥æ¥ãã¼ã¿è¨å® 167 setRegionData : function(obj) { 168 if (typeof obj=="object") { 169 if (typeof obj['annual']=="object") { 170 annual = obj['annual']; 171 } 172 if (typeof obj['individual']=="object") { 173 individual = obj['individual']; 174 } 175 if (typeof obj['words']=="object") { 176 words = obj['words']; 177 } 178 } 179 } 180 }; 181 182 $.fn.holiday = function( method ) { 183 if ( methods[method] ) { 184 return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 )); 185 } else if ( typeof method === 'object' || ! method ) { 186 return methods.init.apply( this, arguments ); 187 } else { 188 $.error( 'Method ' + method + ' does not exist on jQuery.holiday' ); 189 } 190 }; 191 192 //ã¼ããµãã¬ã¹ 193 var padzero = function(val) { 194 return ('0'+val).slice(-2); 195 } 196 197 //ç¥ç¥æ¥è¨ç® 198 var prepare = function(Y, M) { 199 //使æ¸ã¿ãã§ã㯠200 if (typeof prepared[Y+M]!="undefined") { 201 return true; 202 } 203 204 //å¹´éã®ç¥ç¥æ¥ã®è¨ç® 205 var attr, substitutes = {}; 206 if (typeof annual[M]!="undefined") { 207 var d, dayyear; 208 $.each(annual[M], function(key, val){ 209 d = null; 210 if (isFinite(val['day'])) { 211 //æ¥ä»åºå® 212 d = val['day']; 213 } else if (val['day']=="spring equinox") { 214 //æ¥åã®æ¥ 215 d = parseInt(20.69115 + (Y - 2000) * 0.2421904 - parseInt((Y - 2000) / 4)); 216 } else if (val['day']=="autumnal equinox") { 217 //ç§åã®æ¥ 218 d = parseInt(23.09 + (Y - 2000) * 0.2421904 - parseInt((Y - 2000) / 4)); 219 } else if (val['day'].match(/\//)) { 220 //ãããã¼ãã³ãã¼ 221 d = padzero(nthday(Y, M, val['day'])); 222 } else if (val.day.match(/\>/)) { 223 //ç¹å®å¹´ä»¥é 224 dayyear = val['day'].split('>'); 225 if (Y>=dayyear[1]) { 226 d = padzero(dayyear[0]); 227 } 228 } 229 230 if (d==null) { 231 return true; //continue; 232 } 233 234 //ç¥ç¥æ¥ããªã¹ãã«è¨å® 235 attr = {}; 236 attr['name'] = val['name']; 237 if (typeof val['class']!="undefined") { 238 attr['class'] = val['class']; 239 } else if (typeof css['holiday']!="undefined") { 240 attr['class'] = css['holiday']; 241 } else { 242 attr['class'] = ""; 243 } 244 245 holidays[Y + M + d] = attr; 246 247 //æ¯æ¿ä¼æ¥ã®ãã§ã㯠248 d = new Date(Y, M-1, d); 249 if (d.getDay()==0) { 250 d = padzero(d.getDate() + 1); 251 attr['name'] = words['substitute']+"("+val['name']+")"; 252 substitutes[Y +"/"+ M +"/"+ d] = attr; 253 } 254 }); 255 256 //æ¯æ¿ä¼æ¥ã®è£æ£ 257 $.each (substitutes, function(key, val) { 258 key = new Date(key); 259 d = key.getFullYear()+padzero(key.getMonth()+1)+padzero(key.getDate()); 260 while (typeof holidays[d]!="undefined") { 261 key.setDate(key.getDate() + 1); 262 d = key.getFullYear()+padzero(key.getMonth()+1)+padzero(key.getDate()); 263 } 264 holidays[d] = val; 265 }); 266 } 267 268 //åå¥ã®ç¥ç¥æ¥ã®è¿½å 269 if (typeof individual[Y+M]!="undefined") { 270 $.each(individual[Y+M], function(key, val) { 271 attr = {}; 272 attr['name'] = val['name']; 273 if (typeof val['class']!="undefined") { 274 attr['class'] = val['class']; 275 } else if (typeof css['holiday']!="undefined") { 276 attr['class'] = css['holiday']; 277 } else { 278 attr['class'] = ""; 279 } 280 holidays[Y+M+val.day] = attr; 281 }); 282 }; 283 284 prepared[Y+M] = true; 285 return true; 286 } 287 288 //æã®ç¬¬ï½çªç®ã®ï½ææ¥ 289 var nthday = function(y, m, val) { 290 var dayOfWeek = val.split('/'); 291 var firstDay = new Date(y, m - 1, 1); 292 var adjust = dayOfWeek[1] - firstDay.getDay(); 293 if (adjust < 0) 294 adjust += 7; 295 //第ï½çªç®ã®ï½ææ¥ 296 return 1 + adjust + (dayOfWeek[0] -1 ) * 7; 297 } 298 299 //å¹´éã®ç¥ç¥æ¥ãã¼ã¿ 300 var annual = { 301 '01': [{'day':'01','name':'å æ¦'}, {'day':'2/1','name':'æäººã®æ¥'}], 302 '02': [{'day':'11','name':'建å½è¨å¿µæ¥'}], 303 '03': [{'day':'spring equinox','name':'æ¥åã®æ¥'}], 304 '04': [{'day':'29','name':'æåã®æ¥'}], 305 '05': [{'day':'03','name':'æ²æ³è¨å¿µæ¥'}, {'day':'04','name':'ã¿ã©ãã®æ¥'}, {'day':'05','name':'ãã©ãã®æ¥'}], 306 '07': [{'day':'3/1','name':'æµ·ã®æ¥'}], 307 '08': [{'day':'11>
3072016','name':'å±±ã®æ¥'}], //2016年以é 308 '09': [{'day':'3/1','name':'æ¬èã®æ¥'}, {'day':'autumnal equinox','name':'ç§åã®æ¥'}], 309 '10': [{'day':'2/1','name':'ä½è²ã®æ¥'}], 310 '11': [{'day':'03','name':'æåã®æ¥'}, {'day':'23','name':'å¤å´æè¬ã®æ¥'}], 311 '12': [{'day':'23','name':'天çèªçæ¥'}] 312 }; 313 //åå¥ã®ç¥ç¥æ¥ãã¼ã¿ 314 var individual = { 315 '201509': [{'day':'22','name':'彿°ã®ä¼æ¥'}], 316 '202609': [{'day':'22','name':'彿°ã®ä¼æ¥'}], //2015å¹´æç¹ã®æ¨å® 317 '203209': [{'day':'21','name':'彿°ã®ä¼æ¥'}], //2015å¹´æç¹ã®æ¨å® 318 '203709': [{'day':'22','name':'彿°ã®ä¼æ¥'}] //2015å¹´æç¹ã®æ¨å® 319 }; 320 //è¨èªå¯¾å¿ 321 var words = { 322 'substitute': 'æ¯æ¿ä¼æ¥' 323 }; 324 325})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.