X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=LogViewer%2Findex.html;h=c84b554e78d9b4b31415c245db00ff855829f624;hb=a6e69ec801c78f94a9426350cb06e4b54225f22b;hp=06b568f634fd7ef482de7259223307f0162b1cd2;hpb=1694a77fe1f4be1c523e6ce37188153e6d82b085;p=kancollesniffer%2FKancolleSniffer.git diff --git a/LogViewer/index.html b/LogViewer/index.html index 06b568f..c84b554 100644 --- a/LogViewer/index.html +++ b/LogViewer/index.html @@ -669,25 +669,34 @@ function showAchivementTable(data) { } var result = []; var dayEo = 0; - var endOfMonth = null; + var endOfMonth = moment(0); var monthExp = 0; var monthEo = 0; - var endOfYear = null; + var endOfYear = moment(0); var yearExp = 0; var carryOverAch = 0; var carryOverEo = 0; var prevExp = null; + var lastDate = moment(0); var lastExp = -1; - var nextDate = null; + var nextDate = moment(0); for (var i = 0; i < data.length; i++) { var row = data[i]; var date = parseDate(row[0]); var exp = row[1] - 0; var eo = row[2] - 0; - var isNewYear = endOfYear == null || date.isSameOrAfter(endOfYear); - var isNewMonth = endOfMonth == null || date.isSameOrAfter(endOfMonth); - var isNewDate = nextDate == null || date.isSameOrAfter(nextDate); + var isNewYear = date.isSameOrAfter(endOfYear); + var isNewMonth = date.isSameOrAfter(endOfMonth); + var isNewDate = date.isSameOrAfter(nextDate); if (isNewDate || isNewMonth || isNewYear) { + if (lastDate.add('hour', 1).isSameOrBefore(date)) { + // 2時を過ぎて最初のexpを戦果の計算に使うと、2時をまたいだ出撃の戦果が前日に加算される。 + // そこで2時前のexpを使って戦果を計算するが、2時前のexpが正しく出力されていない場合は + // 戦果を正しく計算できない。記録の間隔が1時間以上空いているときは、2時をまたいだ出撃が + // 行われていない可能性が高いので計算には今のexpを使うことにする。 + // これは5時基準で出力された過去のデータで、妥当な戦果を計算するために必要な処理である。 + lastExp = exp; + } if (nextDate != null) { result.push([ (isNewDate ? nextDate.subtract(1, 'days') : endOfMonth).format("YYYY-MM-DD"), @@ -714,14 +723,15 @@ function showAchivementTable(data) { carryOverAch.toFixed(1), carryOverEo.toFixed(1), (carryOverAch + carryOverEo).toFixed(1)]); } dayEo = 0; - nextDate = date.clone().hour(5).startOf('hour'); - if (date.hour() >= 5) + nextDate = date.clone().hour(2).startOf('hour'); + if (date.hour() >= 2) nextDate.add(1, 'days'); if (nextDate.date() === 1) nextDate.add(1, 'days'); } dayEo += eo; monthEo += eo; + lastDate = date; lastExp = exp; } var dt = $('#achivement_table').DataTable();