生活工具 · 健康育儿

跑步配速

配速/距离/用时三换算

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 60 次使用
配速 / 距离 / 用时 — 填任意两项,第三项自动算
距离 自动
km
输入距离,如 10 · 21.0975 · 42.195
配速 自动
min/km
分:秒,每公里用时,如 5:00 · 4:30
用时 自动 finish time
时:分:秒
总用时,如 0:50:00 · 1:45:29
就绪 · 填入任意两项即时三向联动换算
第一节

关于本工具

About

晨跑前设了个5分配速的目标,跑到一半掏出手机算:按当前用时,剩下距离得跑多快才能达标?这个工具就是解决这个瞬间的——输入配速、距离、用时三个量中的任意两个,第三个自动算出。跑者调整训练计划、赛事中估算完赛时间都适用。计算全程在浏览器内完成,数据不上传服务器。

使用场景

半马配速员定速

被选为半程马拉松 2 小时官方配速员,赛前需要精确到秒的配速方案。总距离 21.0975 公里,目标 2 小时整,用本工具一算,每公里配速是 5 分 41 秒。实际佩戴手表跑时,每公里报时若偏差超过 2 秒,立刻调整步频,确保终点误差控制在 10 秒以内,否则会被取消配速员资格。

越野跑关门时间倒推

参加 50 公里越野赛,总关门时间 12 小时,但 CP3 在 28 公里处单独关门 5.5 小时。用本工具算出 CP3 前必须保持每公里 11 分 47 秒以内。前半程若因爬坡超时,后面平路段需要提到什么配速才能赶回?把剩余距离和剩余时间输进去,立刻知道平路要跑进 9 分半,否则被关门。

间歇跑配速换算

教练课表写「400 米间歇跑 90 秒完成」,但手表只显示配速。用本工具把 400 米和 90 秒换算成配速是 3 分 45 秒/公里。跑完 10 组后,发现后几组掉速到 4 分 10 秒,说明乳酸堆积严重,下一轮间歇跑需要降低目标配速到 4 分整,用工具重新算每组用时变成 96 秒。

操场跑圈距离折算

学校操场只有 200 米跑道,计划跑 10 公里。用本工具算出需要跑 50 圈。但实际跑时不想数圈,改按时间跑:目标配速 5 分 30 秒,10 公里总用时 55 分钟。戴上耳机听 55 分钟歌单,跑完正好 50 圈,不用分心数圈数,也不怕数错。

晨跑通勤时间卡点

上班前想跑 8 公里,但 8 点必须到公司。起床 6:30,换衣服热身 15 分钟,6:45 开跑。用本工具算出 8 公里配速 5 分 30 秒需要 44 分钟,7:29 跑完,剩 31 分钟冲澡换衣服。如果当天想跑 10 公里,配速不变则需 55 分钟,到公司铁定迟到,只能改成 6 分配速跑 7 公里。

对比矩阵

维度本工具跑步 App(如 Keep)手工计算
换算类型配速 ↔ 距离 ↔ 用时 三向互算通常只显示配速,不支持逆向换算需手动套公式,易算错
输入精度支持任意小数(如 5.3 km)一般只接受整公里或预设距离受限于心算或纸笔
响应速度即时出结果,无加载需打开 App、进入跑步记录页依赖计算速度,慢且易中断
离线可用完全离线,浏览器内运行大部分功能需联网完全离线
隐私数据仅存本地,不上传服务器需注册账号,数据上传云端无数字记录,无隐私风险
使用门槛打开即用,无需注册需下载、注册、登录需懂公式,且有计算工具
第二节

使用指南

Getting Started

使用步骤

  1. 1在「配速」输入框键入每公里用时(如 5:30),右侧「距离」或「用时」字段自动算出对应值
  2. 2修改「距离」数字(如 10 公里),「用时」字段同步更新,三栏联动无需手动触发
  3. 3点任一结果区域(如「用时」),数值自动复制到剪贴板,粘贴到训练日志即可
  4. 4切换单位下拉菜单(公里/英里),所有已填数值按新单位重新计算,无需清空重输

输入输出示例

输入输出说明
配速 5:00 / 距离 10 公里 → 用时用时:50 分钟常规:马拉松常见配速与半马距离,验证基础乘法换算是否正确
距离 42.195 公里 / 用时 3:30:00 → 配速配速:4:58 / 公里常规:全马标准距离与完赛时间,验证带小数距离和跨小时时间的配速计算
配速 6:00 / 用时 0:30:00 → 距离距离:5 公里常规:30 分钟慢跑典型场景,验证配速与用时计算距离的准确性
配速 0:00 / 距离 5 公里 → 用时用时:0 分钟边界:配速为零的极端输入,验证工具是否处理除零或返回合理结果
距离 0 公里 / 用时 1:00:00 → 配速配速:无穷大(或提示“距离不能为零”)边界:距离为零导致配速计算无意义,验证工具是否有合理错误提示
配速 10:00 / 距离 100 公里 → 用时用时:16 小时 40 分钟边界:超长距离(超马场景),验证大数值下时间格式是否正确(小时分钟而非仅分钟)
配速 4:30 / 用时 2:15:00 → 距离距离:30 公里易错:用时 2 小时 15 分(非整数小时),验证分钟与小时换算是否精确
距离 3.5 公里 / 用时 0:21:00 → 配速配速:6:00 / 公里易错:小数距离(3.5 公里)与分钟用时,验证小数除法精度及配速秒数舍入规则

常见错误对照

1.配速单位混淆:分钟/公里 误用为 分钟/英里

✗ 错误输入配速 5:00,期望换算 10 公里用时 50 分钟
✓ 修复确认工具默认单位是分钟/公里,若需英里换算应提前切换单位或手动换算

配速单位(分钟/公里 vs 分钟/英里)相差约 1.609 倍,直接按习惯输入会导致距离/用时计算偏差达 60% 以上。

2.用时格式错误:冒号分隔时忘记补零

✗ 错误输入用时 1:5(1 小时 5 分),工具解析为 1 小时 05 分
✓ 修复输入 1:05 或 1:05:00

部分工具严格按 HH:MM:SS 解析,1:5 可能被当作 1 分 5 秒或 1 小时 5 分,取决于分隔符位置,导致配速计算偏差。

3.距离单位混用:公里与米同时出现

✗ 错误输入距离 5000(期望 5000 米),但工具默认单位是公里
✓ 修复输入 5(公里)或先切换单位到米再输入 5000

5000 米 = 5 公里,若工具默认公里则 5000 会被当作 5000 公里,配速结果完全失真。

4.用时输入秒数被误读为分钟

✗ 错误输入用时 3600(期望 3600 秒 = 1 小时),工具按 3600 分钟计算
✓ 修复输入 1:00:00 或 60:00(根据工具支持的格式)

纯数字用时输入无单位标注时,工具通常按 HH:MM 或 MM:SS 解析,3600 会被理解为 36:00(36 分钟),而非 3600 秒。

5.配速输入中冒号与小数点混用

✗ 错误输入配速 5.30(期望 5 分 30 秒),工具按 5.3 分钟解析
✓ 修复输入 5:30

小数点表示分钟的小数部分,5.30 = 5 分 18 秒(0.3×60),而 5:30 = 5 分 30 秒,两者相差 12 秒/公里。

6.忽略配速与速度的倒数关系

✗ 错误输入配速 4:00 后,看到速度显示 15 km/h,认为工具算错
✓ 修复配速 4:00 = 4 分钟/公里,速度 = 60 ÷ 4 = 15 km/h,结果正确

配速(分钟/公里)与速度(公里/小时)互为倒数,换算公式为 60 ÷ 配速(分钟)= 速度。常见误解是认为配速越快速度数值越大。

7.间歇跑分段配速直接取平均

✗ 错误400 米跑 1:30(配速 3:45),800 米跑 3:20(配速 4:10),平均配速算作 (3:45+4:10)/2 = 3:57.5
✓ 修复总用时 4:50,总距离 1.2 km,平均配速 = 4:50 ÷ 1.2 ≈ 4:01.7

配速是时间/距离的比值,不同距离段的配速不能直接算术平均,必须用总用时除以总距离计算。

8.大数字距离输入时忽略单位换算

✗ 错误输入距离 42195(期望马拉松 42.195 公里),工具按 42195 公里计算
✓ 修复输入 42.195(公里)或 42195(米,需切换单位)

马拉松距离 42.195 公里,直接输入 42195 会被当作 42195 公里(单位默认公里时),导致配速计算为 0.001 分钟/公里,完全无意义。

第三节

工作原理

How It Works

核心公式

配速(min/km) = 用时(min) ÷ 距离(km)

变量说明

  • 配速每公里用时,单位 min/km
  • 用时总跑步时间,单位 min
  • 距离跑步总距离,单位 km

示例

10 公里用时 55 分钟:配速 = 55 ÷ 10 = 5.5 min/km,即 5 分 30 秒每公里。

输入任意两项(配速/距离/用时)校验输入合法性(非负/非零/格式)本地公式换算(单位统一/交叉计算)输出第三项(含单位/精度)可切换输入项(重新选择两项)
用户输入 / 切换 本地校验与计算 输出结果
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

def pace_calculator(distance_km: float, time_minutes: float) -> dict: """ 根据距离(公里)和用时(分钟)计算配速(分钟/公里) """ if distance_km <= 0 or time_minutes <= 0: raise ValueError("距离和用时必须大于0") pace = time_minutes / distance_km return { "pace_min_per_km": round(pace, 2), "pace_str": f"{int(pace)}分{int((pace % 1) * 60)}秒/公里" } # 示例:10公里用时50分钟 print(pace_calculator(10, 50)) # {'pace_min_per_km': 5.0, 'pace_str': '5分0秒/公里'} print(pace_calculator(21.1, 105)) # {'pace_min_per_km': 4.98, 'pace_str': '4分59秒/公里'}
function calcPace(distanceKm, timeMinutes) { if (distanceKm <= 0 || timeMinutes <= 0) { throw new Error('距离和用时必须大于0'); } const pace = timeMinutes / distanceKm; const mins = Math.floor(pace); const secs = Math.round((pace - mins) * 60); return { paceMinPerKm: parseFloat(pace.toFixed(2)), paceStr: `${mins}分${secs}秒/公里` }; } // 示例 console.log(calcPace(10, 50)); // { paceMinPerKm: 5, paceStr: '5分0秒/公里' } console.log(calcPace(5, 30)); // { paceMinPerKm: 6, paceStr: '6分0秒/公里' }
package main import ( "fmt" "math" ) type PaceResult struct { PaceMinPerKm float64 `json:"pace_min_per_km"` PaceStr string `json:"pace_str"` } func calcPace(distanceKm, timeMinutes float64) (PaceResult, error) { if distanceKm <= 0 || timeMinutes <= 0 { return PaceResult{}, fmt.Errorf("距离和用时必须大于0") } pace := timeMinutes / distanceKm mins := int(pace) secs := int(math.Round((pace - float64(mins)) * 60)) return PaceResult{ PaceMinPerKm: math.Round(pace*100) / 100, PaceStr: fmt.Sprintf("%d分%d秒/公里", mins, secs), }, nil } func main() { result, _ := calcPace(10, 50) fmt.Printf("%+v\n", result) // {PaceMinPerKm:5 PaceStr:5分0秒/公里} result, _ = calcPace(21.1, 105) fmt.Printf("%+v\n", result) // {PaceMinPerKm:4.98 PaceStr:4分59秒/公里} }
#!/bin/bash # 用法: ./pace.sh <距离(公里)> <用时(分钟)> # 示例: ./pace.sh 10 50 if [ $# -ne 2 ]; then echo "用法: $0 <距离公里> <用时分钟>" exit 1 fi distance=$1 time=$2 if (( $(echo "$distance <= 0" | bc -l) )) || (( $(echo "$time <= 0" | bc -l) )); then echo "错误:距离和用时必须大于0" exit 1 fi pace=$(echo "scale=2; $time / $distance" | bc) mins=$(echo "$pace / 1" | bc) secs=$(echo "($pace - $mins) * 60" | bc | awk '{printf "%d", $1}') echo "配速: ${mins}分${secs}秒/公里" # 示例输出 # ./pace.sh 10 50 → 配速: 5分0秒/公里
interface PaceResult { paceMinPerKm: number; paceStr: string; } function calcPace(distanceKm: number, timeMinutes: number): PaceResult { if (distanceKm <= 0 || timeMinutes <= 0) { throw new Error('距离和用时必须大于0'); } const pace = timeMinutes / distanceKm; const mins = Math.floor(pace); const secs = Math.round((pace - mins) * 60); return { paceMinPerKm: parseFloat(pace.toFixed(2)), paceStr: `${mins}分${secs}秒/公里` }; } // 示例 console.log(calcPace(10, 50)); // { paceMinPerKm: 5, paceStr: '5分0秒/公里' } console.log(calcPace(5, 30)); // { paceMinPerKm: 6, paceStr: '6分0秒/公里' }
第五节

常见问题

Q & A
我跑步机显示的是公里,但我想算每英里配速,这个工具能直接换算吗?

可以。本工具的距离输入框支持公里和英里两种单位,在输入框右侧下拉选择即可。输入距离后,配速和用时结果会同步按所选单位显示。如果跑步机显示的是公里配速(如 5:00/km),想换算成英里配速,直接选「英里」单位输入相同数值,结果区就会给出对应英里配速。

我跑了 10 公里用时 55 分 30 秒,配速怎么算?

在「距离」框输入 10,单位选「公里」;在「用时」框输入 55:30(冒号分隔分和秒)。点击计算后,「配速」结果会显示每公里 5:33。如果输入 55.5(纯分钟),工具会按 55.5 分钟计算,结果同样是 5:33。注意:用时输入支持「分:秒」格式,也支持纯分钟的小数格式。

为什么我手机 App 显示的配速和这个工具算出来不一样?

常见原因有两个。一是手机 GPS 记录的距离有误差(比如实际跑了 10.2 公里,App 只记了 10.0 公里),工具用的是你手动输入的距离,和 App 记录的距离不同,配速自然不同。二是 App 可能用了「移动配速」(只算跑动时间,停表等红灯不计时),而工具是按总用时计算的。建议先核对两个工具上的距离数值是否一致。

我想跑一场半马(21.0975 公里),目标配速 5:00,需要多长时间跑完?

在「配速」框输入 5:00,单位选「每公里」;在「距离」框输入 21.0975,单位选「公里」。点击计算后,「用时」结果会显示 1:45:29(1 小时 45 分 29 秒)。这是理论用时,实际比赛因爬升、补给、体力分配会略有出入,建议预留 2-3 分钟的缓冲时间。

距离输入 0.5 公里,配速输入 6:00,算出来用时 3 分钟,这准吗?

准。计算公式是:用时(分钟)= 距离(公里)× 配速(分钟/公里)。0.5 × 6 = 3 分钟。本工具所有计算都基于这个基础公式,没有额外修正或舍入误差,结果精确到秒。如果发现结果和手算对不上,请检查输入的单位是否一致(比如距离是英里但配速选的是每公里)。

这个工具需要联网才能用吗?数据会上传到服务器吗?

完全不需要联网。本工具所有计算都在浏览器本地完成(JavaScript 直接运算),输入的距离、配速、用时数据不会离开你的设备,也不会被发送到任何服务器。可以放心使用,断网环境下打开页面一样能算。

我想把配速从「每公里 4:30」换算成「每英里」是多少?

在「配速」框输入 4:30,单位选「每公里」;然后在「距离」框输入 1,单位选「英里」。点击计算后,「用时」结果就是跑 1 英里的时间,显示为 7:14(7 分 14 秒)。反过来,如果知道每英里配速想算每公里,同样操作,距离选 1 公里即可。

输入用时 1:30:00(1 小时 30 分),距离 15 公里,算出来配速是 6:00,但我感觉实际跑得没那么慢?

1 小时 30 分 = 90 分钟,90 ÷ 15 = 6:00/公里,计算正确。如果实际感觉配速更快,可能是:1)实际距离不足 15 公里(手表 GPS 漂移多记了距离);2)总用时里包含中途停下休息的时间(工具按总用时算,而感觉是按纯跑动时间算)。建议用已知准确距离(如标准田径场 400 米跑道)验证工具准确性。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭