展示不同配速下,5公里、10公里、半程马拉松及全程马拉松的完赛时间,便于跑步训练和比赛参考。

3分配

配速5公里10公里半马全马
3'00"15:0030:001:03:172:06:35
3'05"15:2530:501:05:032:10:06
3'10"15:5031:401:06:482:13:37
3'15"16:1532:301:08:342:17:08
3'20"16:4033:201:10:192:20:39
3'25"17:0534:101:12:042:24:09
3'30"17:3035:001:13:502:27:40
3'35"17:5535:501:15:352:31:11
3'40"18:2036:401:17:212:34:42
3'45"18:4537:301:19:062:38:13
3'50"19:1038:201:20:522:41:44
3'55"19:3539:101:22:372:45:15

4分配

配速5公里10公里半马全马
4'00"20:0040:001:24:232:48:46
4'05"20:2540:501:26:082:52:17
4'10"20:5041:401:27:542:55:48
4'15"21:1542:301:29:392:59:19
4'20"21:4043:201:31:253:02:50
4'25"22:0544:101:33:103:06:21
4'30"22:3045:001:34:563:09:52
4'35"22:5545:501:36:413:13:23
4'40"23:2046:401:38:273:16:54
4'45"23:4547:301:40:123:20:25
4'50"24:1048:201:41:583:23:56
4'55"24:3549:101:43:433:27:27

5分配

配速5公里10公里半马全马
5'00"25:0050:001:45:293:30:58
5'05"25:2550:501:47:143:34:29
5'10"25:5051:401:49:003:38:00
5'15"26:1552:301:50:453:41:31
5'20"26:4053:201:52:313:45:02
5'25"27:0554:101:54:163:48:33
5'30"27:3055:001:56:023:52:04
5'35"27:5555:501:57:473:55:35
5'40"28:2056:401:59:333:59:06
5'45"28:4557:302:01:184:02:37
5'50"29:1058:202:03:044:06:08
5'55"29:3559:102:04:494:09:39

6分配

配速5公里10公里半马全马
6'00"30:001:00:002:06:354:13:10
6'05"30:251:00:502:08:204:16:41
6'10"30:501:01:402:10:064:20:12
6'15"31:151:02:302:11:514:23:43
6'20"31:401:03:202:13:374:27:14
6'25"32:051:04:102:15:224:30:45
6'30"32:301:05:002:17:084:34:16
6'35"32:551:05:502:18:534:37:47
6'40"33:201:06:402:20:394:41:18
6'45"33:451:07:302:22:244:44:48
6'50"34:101:08:202:24:094:48:19
6'55"34:351:09:102:25:554:51:50

7分配

配速5公里10公里半马全马
7'00"35:001:10:002:27:404:55:21
7'05"35:251:10:502:29:264:58:52
7'10"35:501:11:402:31:115:02:23
7'15"36:151:12:302:32:575:05:54
7'20"36:401:13:202:34:425:09:25
7'25"37:051:14:102:36:285:12:56
7'30"37:301:15:002:38:135:16:27
7'35"37:551:15:502:39:595:19:58
7'40"38:201:16:402:41:445:23:29
7'45"38:451:17:302:43:305:27:00
7'50"39:101:18:202:45:155:30:31
7'55"39:351:19:102:47:015:34:02

8分配

配速5公里10公里半马全马
8'00"40:001:20:002:48:465:37:33
8'05"40:251:20:502:50:325:41:04
8'10"40:501:21:402:52:175:44:35
8'15"41:151:22:302:54:035:48:06
8'20"41:401:23:202:55:485:51:37
8'25"42:051:24:102:57:345:55:08
8'30"42:301:25:002:59:195:58:39
8'35"42:551:25:503:01:056:02:10
8'40"43:201:26:403:02:506:05:41
8'45"43:451:27:303:04:366:09:12
8'50"44:101:28:203:06:216:12:43
8'55"44:351:29:103:08:076:16:14

下面代码贴到 HTML 文件,也能计算出来。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>马拉松配速计算器</title>
    <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100 flex items-center justify-center min-h-screen">
    <div class="bg-white p-6 rounded-lg shadow-lg w-96">
        <h2 class="text-xl font-bold mb-4 text-center">马拉松配速计算器</h2>
        <label class="block mb-2 text-gray-700">输入配速(例如 5分30秒):</label>
        <input type="text" id="paceInput" class="w-full p-2 border rounded mb-4" placeholder="例:5分30秒">
        <button onclick="calculateMarathonTime()" class="w-full bg-blue-500 text-white p-2 rounded">计算</button>
        <ul id="resultList" class="mt-4 text-gray-800"></ul>
    </div>

    <script>
        function calculateMarathonTime() {
            let pace = document.getElementById("paceInput").value;
            let [minutes, seconds] = pace.split('分');
            if (!seconds) {
                alert("请输入有效的配速格式,例如 5分30秒");
                return;
            }
            seconds = seconds.replace('秒', '');
            
            let paceInSeconds = parseInt(minutes) * 60 + parseInt(seconds);
            const distanceList = [5, 10, 15, 20, 21, 25, 30, 35, 40, 42, 42.195];
            let resultList = document.getElementById("resultList");
            resultList.innerHTML = "";
            
            distanceList.forEach((distance) => {
                let totalTimeInSeconds = distance * paceInSeconds;
                let hours = Math.floor(totalTimeInSeconds / 3600);
                totalTimeInSeconds %= 3600;
                let minutesRemaining = Math.floor(totalTimeInSeconds / 60);
                let secondsRemaining = Math.floor(totalTimeInSeconds % 60);
                let result = `${distance}公里: ${hours ? hours + '小时' : ''}${minutesRemaining}${secondsRemaining}秒`;
                
                let li = document.createElement("li");
                li.textContent = result;
                li.classList.add("border-b", "py-2");
                resultList.appendChild(li);
            });
        }
    </script>
</body>
</html>