交通死亡事故(2)

前回、最も死亡者数の少なかった日は何人だったかを推定したが、
実際にはどうだったのだろうか。


ITARDAのサイトにそのデータがある。
例えば、

http://www.itarda.or.jp/kouki/060101.html

見て分かるように、
日付のファイルにその日の死亡者数が書かれている。
これを、次々に見ていけば1年分のデータが得られる。
WSH/JScriptのプログラムは一番下)

2006/1/1,14
2006/1/2,21
2006/1/3,16
2006/1/4,18
2006/1/5,18
...
2006/12/27,18
2006/12/28,22
2006/12/29,25
2006/12/30,15
2006/12/31,13

度数分布にすると、

7, 2
8, 3
9, 7
10, 11
11, 15
12, 9
13, 31
14, 34
15, 30
16, 24
17, 31
18, 35
19, 21
20, 12
21, 22
22, 21
23, 15
24, 15
25, 7
26, 6
27, 5
28, 3
29, 2
30, 2
31, 2

結局、最も死亡者数の少ない日で7人、
と予想通りで面白くない結果になってしまった。



var IE = WScript.CreateObject("InternetExplorer.Application");

try {
IE.Visible = true;

var date = new Date(2006, 0, 1); // 2006/1/1
do {
WScript.Echo(formatDate(date) + "," + getNDeath(date));
date.setDate(date.getDate() + 1);
} while(date.getFullYear() == 2006);
}
catch(e) {
IE.Quit();
}

function getURL(date) {
var y = date.getYear() % 100;
var m = date.getMonth() + 1;
var d = date.getDate();
return "http://www.itarda.or.jp/kouki/"
+ format(y) + format(m) + format(d) + ".html"
}

function getNDeath(date) {
IE.Navigate(getURL(date));
WaitLoad();

var table = IE.Document.all.tags("table")(0);
var row = table.rows(2);
return row.cells(1).innerText - 0;
}

function format(n) {
if(n < 10)
return "0" + n;
else
return "" + n;
}

function formatDate(d) {
return d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate();
}

function WaitLoad() {
var stat, dstart;
stat = 0;
while(true) {
if(stat == 0) {
if(!IE.Busy) {
if(IE.Document.readyState == "complete") {
dstart = (new Date()).getTime();
stat = 1;
}
}
}
else {
if(!IE.Busy &&
IE.Document.readyState == "complete") {
if( (new Date()).getTime() >= dstart + 1000)
break;
}
else {
stat = 0;
}
}
}
}