(function(){
var PREF={11:’北海道’,12:’北海道’,13:’北海道’,14:’北海道’,15:’北海道’,16:’北海道’,17:’北海道’,18:’北海道’,19:’北海道’,20:’北海道’,21:’北海道’,22:’北海道’,23:’北海道’,24:’北海道’,31:’青森県’,32:’秋田県’,33:’岩手県’,34:’宮城県’,35:’山形県’,36:’福島県’,40:’茨城県’,41:’栃木県’,42:’群馬県’,43:’埼玉県’,44:’東京都’,45:’千葉県’,46:’神奈川県’,48:’長野県’,49:’山梨県’,50:’静岡県’,51:’愛知県’,52:’岐阜県’,53:’三重県’,54:’新潟県’,55:’富山県’,56:’石川県’,57:’福井県’,60:’滋賀県’,61:’京都府’,62:’大阪府’,63:’兵庫県’,64:’奈良県’,65:’和歌山県’,66:’岡山県’,67:’広島県’,68:’島根県’,69:’鳥取県’,71:’徳島県’,72:’香川県’,73:’愛媛県’,74:’高知県’,81:’山口県’,82:’福岡県’,83:’大分県’,84:’長崎県’,85:’佐賀県’,86:’熊本県’,87:’宮崎県’,88:’鹿児島県’,91:’沖縄県’};
var FIELDS=[[‘mo’,’猛暑日’,’日最高気温35℃以上’],[‘ko’,’酷暑日’,’日最高気温40℃以上’],[‘tn’,’熱帯夜’,’日最低気温25℃以上’],[‘cn’,’超熱帯夜’,’日最低気温30℃以上’],[‘ma’,’真夏日’,’日最高気温30℃以上’],[‘su’,’夏日’,’日最高気温25℃以上’],[‘fu’,’冬日’,’日最低気温0℃未満’],[‘mf’,’真冬日’,’日最高気温0℃未満’]];
var CUR=’mo’;var DATA=null;var CS=null;var YSTART=2026;
var _mth=(new Date()).getMonth()+1;
if(_mth>=11){CUR=’fu’;}
if(_mth<=3){CUR='fu';}
function pn(p){var x=PREF[p];if(x){return x;}return '';}
function lnk(nm,pf){var s=null;
if(CS){s=CS[nm+'|'+pf];if(!s){s=CS[nm];}}
if(s){return '‘+nm+’‘;}
return nm;}
function topOf(f){var best=null;var i;var r;
for(i=0;i(best[f]||0)){best=r;}}}
return best;}
function sumOf(f){var s=0;var c=0;var i;var v;
for(i=0;i0){c++;}}
return [s,c];}
function bigCard(f,label,cls){var b=topOf(f);var v=0;if(b){v=b[f]||0;}
var s=’まだ観測なし’;if(b){if(v>0){s=lnk(b.n,pn(b.p))+’(’+pn(b.p)+’)’;}}
return ‘
‘+label+’ 全国最多
‘+v+’日
‘+s+’
‘;}
function cards(){
var h=”;var win=false;
if(_mth>=11){win=true;}
if(_mth<=3){win=true;}
if(win){h+=bigCard('fu','冬日','');h+=bigCard('mf','真冬日',' blue');
var k2=sumOf('mf');
h+='
真冬日(終日0℃未満) 全国のべ
‘+k2[0]+’日
‘+k2[1]+’地点で観測
‘;}
else{h+=bigCard(‘mo’,’猛暑日’,”);h+=bigCard(‘tn’,’熱帯夜’,’ blue’);
var k=sumOf(‘ko’);
h+=’
酷暑日(40℃以上) 全国のべ
‘+k[0]+’日
‘+k[1]+’地点で観測
‘;}
h+=’
集計地点数
‘+DATA.cnt+’
‘+DATA.y+’年・気温観測地点
‘;
document.getElementById(‘dc-cards’).innerHTML=h;}
function tabs(){var h=”;var i;var f;
for(i=0;i<FIELDS.length;i++){f=FIELDS[i];
h+='‘+f[1]+’‘;}
var el=document.getElementById(‘dc-tabs’);el.innerHTML=h;
var sp=el.getElementsByClassName(‘dc-tab’);
for(i=0;i<sp.length;i++){sp[i].onclick=function(){CUR=this.getAttribute('data-f');tabs();table();};}}
function table(){
var f=CUR;var def='';var i;
for(i=0;i<FIELDS.length;i++){if(FIELDS[i][0]===f){def=FIELDS[i][1]+'('+FIELDS[i][2]+')';}}
var rows=DATA.rows.slice().sort(function(a,b){return (b[f]||0)-(a[f]||0);});
var h='
‘;}
else{el.innerHTML=”;}}
function upd(){var s=’集計時点: ‘+DATA.upd+’(毎晩、気象庁の日別値から自動再集計しています・表示は30分キャッシュ)’;
if(DATA.y<2026){s='※過去年は気象庁の確定値(日別値)からの当サイト独自集計です。収集が完了していない年は暫定値になります。 '+s;}
document.getElementById('dc-upd').innerHTML=s;}
function years(){var el=document.getElementById('dc-years');if(!el){return;}
var cy=(new Date()).getFullYear();
if(cy=YSTART;y–){h+=’‘+y+’年‘;}
el.innerHTML=’
‘+h+’
‘;
var sp=el.getElementsByClassName(‘dc-tab’);
for(i=0;i<sp.length;i++){sp[i].onclick=function(){Y=parseInt(this.getAttribute('data-y'),10);load();};}}
function load(){DATA=null;
document.getElementById('dc-cards').innerHTML='読み込み中…';
fetch('/wp-json/ytn/v1/dcpub?y='+Y).then(function(r){return r.json();}).then(function(j){DATA=j;render();});}
var PSEL='';var SFLD='';
function pf0(){var o={};var i;var r;
for(i=0;i<DATA.rows.length;i++){r=DATA.rows[i];var nm2=pn(r.p);
if(!nm2){continue;}
if(o[nm2]===undefined){o[nm2]=r.p;}else{if(r.p<o[nm2]){o[nm2]=r.p;}}}
var arr=[];var k;
for(k in o){arr.push([k,o[k]]);}
arr.sort(function(a,b){return a[1]-b[1];});
return arr;}
function prefTable(){
var el=document.getElementById('dc-pref-tbl');if(!el){return;}
if(!PSEL){el.innerHTML='
‘;return;}
var f=SFLD;if(!f){f=CUR;}
var rows=[];var i;var r;
for(i=0;i<DATA.rows.length;i++){r=DATA.rows[i];if(pn(r.p)===PSEL){rows.push(r);}}
rows.sort(function(a,b){return (b[f]||0)-(a[f]||0);});
var KS=[['mo','猛暑日'],['ko','酷暑日'],['tn','熱帯夜'],['cn','超熱帯夜'],['ma','真夏日'],['su','夏日'],['fu','冬日'],['mf','真冬日']];
var h='
‘;
el.innerHTML=h;
var ths=el.getElementsByClassName(‘dc-sort’);
for(i=0;i<ths.length;i++){ths[i].onclick=function(){SFLD=this.getAttribute('data-f');prefTable();};}
}
function pref(){
var el=document.getElementById('dc-pref-sel');if(!el){return;}
var arr=pf0();var h='都道府県を選択…’;var i;
for(i=0;i<arr.length;i++){h+='’+arr[i][0]+”;}
el.innerHTML=h;
el.onchange=function(){PSEL=this.value;SFLD=”;prefTable();};
prefTable();}
function render(){if(!DATA){return;}years();badge();cards();tabs();table();upd();pref();}
window._dcY=function(y){Y=y;load();};
window._dcLnk=function(n,p){return lnk(n,pn(p));};
var Y=(new Date()).getFullYear();
load();
fetch(‘/wp-json/ytn/v1/climset?v=2’).then(function(r){return r.json();}).then(function(j){CS=j;render();});
})();
(function(){
var LB=[[‘mo’,’猛暑日’],[‘ko’,’酷暑日’],[‘tn’,’熱帯夜’],[‘cn’,’超熱帯夜’],[‘ma’,’真夏日’],[‘su’,’夏日’],[‘fu’,’冬日’],[‘mf’,’真冬日’]];
var COLD={fu:1,mf:1};
var HC=’mo’;var HD=null;
var _m2=(new Date()).getMonth()+1;
if(_m2>=11){HC=’fu’;}
if(_m2<=3){HC='fu';}
function nm(s){return String(s).replace(/[]/g,”);}
function htabs(){var h=”;var i;
for(i=0;i<LB.length;i++){h+='‘+LB[i][1]+’‘;}
var el=document.getElementById(‘dc-htabs’);el.innerHTML=h;
var sp=el.getElementsByClassName(‘dc-tab’);
for(i=0;i<sp.length;i++){sp[i].onclick=function(){HC=this.getAttribute('data-f');htabs();htable();};}}
function htable(){
var el=document.getElementById('dc-hist');
if(!HD){el.innerHTML='読み込み中…';return;}
if(!HD.years){el.innerHTML='歴代データは準備中です。';return;}
if(HD.years.length<1){el.innerHTML='