2016年08月

Uターン台風とかブーメラン台風とか呼ばれている台風10号。
日本海側から東北地方に上陸するのは史上初だとか。。

ニュースや天気予報で見た進路の軌跡が、何かに似ているような気がしてならなくて、軌跡だけを抜き取れないかと思って調べたところ、辿った緯度経度のデータを発見。

そこで、Canvas+Javascript の練習も兼ねて作ってみた。

データはこちら。
デジタル台風:台風201610号 (LIONROCK) - 詳細経路情報

typ10_1

愛媛県か、高知県の県形に似てるのかなぁ、と思っていたけど、比較すると違う。
何に似ているんだろう(-_-;)

↓中心気圧が低いほど太く、移動速度が速いほど赤くしてみた。特に意味は無い…。
typ10_2


この台風による被害が起こらないことを願います。
Excelの日付シリアル値は「1900/01/01 00:00:00」から始まる日数(1から始まる)。
一方、PHPのタイムスタンプ値は「1970/01/01 09:00:00」から始まる秒数(0から始まる)。
んで、「1970/01/01 09:00:00」をExcel日付シリアル値で表すと25569.375なので、変換は下記となる。
function excelTimeToPhpTime($excelTime) {
    $excelTime -= 25569.375; // Excel上の1970/01/01 09:00:00
    $excelTime *= 86400; // 日数 → 秒数
    return $excelTime;
}
上は見やすいように書いたが、通常は下記のようにしたほうが良いでしょう。
(excelTimeをリターンしているところなど、すごく気持ち悪いし(^_^;))
function excelTimeToPhpTime($excelTime) {
    return ($excelTime - 25569.375) * 86400;
}
使用例:
echo date("Y/m/d H:i:s", excelTimeToPhpTime(42601.375));
「2016/08/19 09:00:00」と出力されます。

ちなみに、Excel日付シリアル値は、日付を入力したセルの書式設定を「標準」にすると表示されます。
下記で詳しく解説してくださっています。
PHPのbasename関数でマルチバイトのファイル名を用いる場合の注意 | 徳丸浩の日記

Windowsな環境で、全角ファイル名を使うような場合(やな予感しかしないが…(;´Д`))、シフトJIS("Shift_JIS" とか "SJIS")を扱わなければならない。
このような場合、下記のおまじないが必要となる。

setlocale(LC_CTYPE, 'Japanese_Japan.932');

これをしないと、ファイル名が文字化けします\(^o^)/

見事に引っ掛かった罠(゚∀゚)
つーか、なんで今まで引っかからなかったんだろう…(・・?
某価格情報掲示板に書き込んだが、そこでは言い切れなかったことをここに記す。

ちなみに当方JCOM東京北の利用者です。

Smart TV Box を使っていて、近頃NETランプが緑点滅になって再起動でごまかして使っている状態。
なので問い合わせようとしたのだが…。

サポート窓口。わかりにくいーよっ。
契約時に渡された書物では
0120372279
で、ネットで見たところでは
0120914000
だったが、結局は下記にかけさせられた。
(ガイダンスが流れるが無視して待て、と言われた)

<J:COMカスタマーセンター>
0120−944−922
受付時間:午前9時〜午後7時

そもそも、ガイダンスで要件を選択させられるのだが、当てはまる項目が無いんだよね。
しかも、他にかけ直させるだけのはずなのに、契約の確認のため個人情報を聞かれた。
案の定、かけ直し先でも契約の確認をされた…。なんなんだー\(^o^)/


他にも言いたいことあったけど、まぁいいや(^_^;)
マニュアル: vprintf / vsprintf

printf関数に、引数を羅列するのではなく、配列を渡したいとき。
泣く泣くこんなことをしてしまった経験がある。
printf("%s, %s, %s, %s", $arr[0], $arr[1], $arr[2], $arr[3]);
なんとも間抜け。。。

だけど、あったんだね。配列を渡せる関数が。
vprintf("%s, %s, %s, %s", $arr);
なんとスマートな。

終わり。