-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctions.php
56 lines (50 loc) · 1.3 KB
/
functions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
/**
* functions.php
*/
// 結果をパースする
// (例) "1:23.456" --> 83.456
function parse_record($record) {
$record = (string)$record;
if (strpos($record, ':') === FALSE) {
return (double)$record;
} else {
$t = explode(':', $record);
return 60.0 * (double)$t[0] + (double)$t[1];
}
}
// 結果をフォーマットする
// (例) 83.4561 --> "1:23.456"
function format_result($val) {
$minute = floor((double)$val / 60.0);
$second = floor((double)$val - $minute * 60.0);
$milli = floor(((double)$val - $minute * 60.0 - $second) * 1000.0);
$ret = '';
if (0 < $minute) {
$ret .= (string)$minute . ':';
}
if (0 <= $second && $second < 10) {
$ret .= '0' . (string)$second;
} else {
$ret .= (string)$second;
}
$ret .= '.' . (string)$milli;
return $ret;
}
// アベレージを計算する
function calc_result($records) {
$record_max = -1.0;
$record_min = 10000.0;
$total = 0.0;
foreach ($records as $record) {
if ($record_max < $record) {
$record_max = $record;
}
if ($record < $record_min) {
$record_min = $record;
}
$total = $total + $record;
}
$val = ($total - $record_max - $record_min) / 3.0;
return $val;
}