{"id":56,"date":"2024-12-10T14:34:55","date_gmt":"2024-12-10T13:34:55","guid":{"rendered":"https:\/\/www.fastercalculator.com\/%e8%bf%90%e5%8a%a8%e8%ae%a1%e7%ae%97%e5%99%a8\/%e9%80%9f%e5%ba%a6%e8%ae%a1%e7%ae%97%e5%99%a8\/"},"modified":"2024-12-11T12:48:38","modified_gmt":"2024-12-11T11:48:38","slug":"%e9%80%9f%e5%ba%a6%e8%ae%a1%e7%ae%97%e5%99%a8","status":"publish","type":"page","link":"https:\/\/www.fastercalculator.com\/zh-hans\/%e8%bf%90%e5%8a%a8%e8%ae%a1%e7%ae%97%e5%99%a8\/%e9%80%9f%e5%ba%a6%e8%ae%a1%e7%ae%97%e5%99%a8\/","title":{"rendered":"\u901f\u5ea6\u8ba1\u7b97\u5668"},"content":{"rendered":"\n <style>\r\n        body {\r\n            font-family: Arial, sans-serif;\r\n            margin: 20px auto;\r\n            padding: 20px;\r\n        }\r\n        .input-group {\r\n            margin-bottom: 15px;\r\n        }\r\n        .input-group input {\r\n            width: 60px;\r\n            padding: 5px;\r\n        }\r\n        .results {\r\n            margin-top: 20px;\r\n            padding: 15px;\r\n            background-color: #f5f5f5;\r\n            border-radius: 5px;\r\n        }\r\n        .button-group {\r\n            margin: 20px 0;\r\n        }\r\n        .calculate-btn {\r\n            background-color: #4CAF50;\r\n            color: white;\r\n            padding: 10px 20px;\r\n            border: none;\r\n            border-radius: 4px;\r\n            cursor: pointer;\r\n            font-size: 16px;\r\n        }\r\n        .calculate-btn:hover {\r\n            background-color: #45a049;\r\n        }\r\n        select, input {\r\n            padding: 5px;\r\n            margin: 2px;\r\n            border: 1px solid #ddd;\r\n            border-radius: 4px;\r\n        }\r\n        label {\r\n            display: inline-block;\r\n            width: 70px;\r\n        }\r\n    <\/style>\r\n\n<div class=\"input-group\">\r\n        <label for=\"unit\">Unit:<\/label>\r\n        <select id=\"unit\" onchange=\"updateInitialValues()\">\r\n            <option value=\"km\">Kilometers<\/option>\r\n            <option value=\"miles\">Miles<\/option>\r\n        <\/select>\r\n    <\/div>\r\n\r\n    <div class=\"input-group\">\r\n        <label for=\"distance\">Distance:<\/label>\r\n        <input type=\"number\" id=\"distance\" step=\"0.01\" min=\"0\" onchange=\"calculateFromDistance()\"\/>\r\n    <\/div>\r\n\r\n    <div class=\"input-group\">\r\n        <label for=\"timeHours\">Time:<\/label>\r\n        <input type=\"number\" id=\"timeHours\" min=\"0\" max=\"99\" placeholder=\"hh\" onchange=\"calculateFromTime()\"\/> :\r\n        <input type=\"number\" id=\"timeMinutes\" min=\"0\" max=\"59\" placeholder=\"mm\" onchange=\"calculateFromTime()\"\/> :\r\n        <input type=\"number\" id=\"timeSeconds\" min=\"0\" max=\"59\" placeholder=\"ss\" onchange=\"calculateFromTime()\"\/>\r\n    <\/div>\r\n\r\n    <div class=\"input-group\">\r\n        <label for=\"speed\">Speed:<\/label>\r\n        <input type=\"number\" id=\"speed\" step=\"0.1\" min=\"0\" onchange=\"calculateFromSpeed()\"\/>\r\n        <span id=\"speedUnit\">km\/h<\/span>\r\n    <\/div>\r\n\r\n    <div class=\"input-group\">\r\n        <label for=\"paceMinutes\">Pace:<\/label>\r\n        <input type=\"number\" id=\"paceMinutes\" min=\"0\" max=\"59\" placeholder=\"min\" onchange=\"calculateFromPace()\"\/> :\r\n        <input type=\"number\" id=\"paceSeconds\" min=\"0\" max=\"59\" placeholder=\"sec\" onchange=\"calculateFromPace()\"\/>\r\n        <span id=\"paceUnit\">min\/km<\/span>\r\n    <\/div>\r\n\r\n    <div class=\"button-group\">\r\n        <button class=\"calculate-btn\" onclick=\"calculateAll()\">Calculate<\/button>\r\n    <\/div>\r\n\n    <div class=\"results\">\r\n        <h3>Times for common distances:<\/h3>\r\n        <p>5K: <span id=\"5kResult\"><\/span><\/p>\r\n        <p>10K: <span id=\"10kResult\"><\/span><\/p>\r\n        <p>Half Marathon: <span id=\"halfmarathonResult\"><\/span><\/p>\r\n        <p>Marathon: <span id=\"marathonResult\"><\/span><\/p>\r\n    <\/div>\r\n\n <script>\r\n        \/\/ Text definitions for translations\r\n        const texts = {\r\n            title: \"\u901f\u5ea6\u8ba1\u7b97\u5668\",\r\n            distance: \"\u8ddd\u79bb\",\r\n            pace: \"\u4f69\u65af\",\r\n            time: \"\u65f6\u95f4\",\r\n            calculate: \"\u8ba1\u7b97\u4e00\u4e0b\",\r\n            unit: \"\u5355\u4f4d\",\r\n            kilometers: \"\u516c\u91cc\",\r\n            miles: \"\u82f1\u91cc\",\r\n            minutes: \"\u5206\u949f\",\r\n            seconds: \"\u51e0\u79d2\u949f\",\r\n            hours: \"\u5c0f\u65f6\",\r\n            speed: \"\u901f\u5ea6\",\r\n            perKm: \"\u5206\u949f\/\u516c\u91cc\",\r\n            perMile: \"\u82f1\u91cc\/\u5206\u949f\",\r\n            speedKmH: \"\u516c\u91cc\/\u5c0f\u65f6\",\r\n            speedMpH: \"\u82f1\u91cc\/\u5c0f\u65f6\",\r\n            commonDistances: \"\u5e38\u7528\u8ddd\u79bb\u7684\u65f6\u95f4\",\r\n            fiveK: \"5K\",\r\n            tenK: \"10K\",\r\n            halfMarathon: \"\u534a\u7a0b\u9a6c\u62c9\u677e\",\r\n            marathon: \"\u9a6c\u62c9\u677e\",\r\n            enterValidNumbers: \"\u8bf7\u8f93\u5165\u6709\u6548\u7684\u6570\u5b57\",\r\n            enterValidDistance: \"\u8bf7\u8f93\u5165\u6709\u6548\u8ddd\u79bb\"\r\n        };\r\n\r\n        function initializeTexts() {\r\n            document.title = texts.title;\r\n            document.querySelector('h1').textContent = texts.title;\r\n            document.querySelector('label[for=\"unit\"]').textContent = texts.unit;\r\n            document.querySelector('label[for=\"distance\"]').textContent = texts.distance;\r\n            document.querySelector('label[for=\"timeHours\"]').textContent = texts.time;\r\n            document.querySelector('label[for=\"speed\"]').textContent = texts.speed;\r\n            document.querySelector('label[for=\"paceMinutes\"]').textContent = texts.pace;\r\n            document.querySelector('.calculate-btn').textContent = texts.calculate;\r\n            document.querySelector('.results h3').textContent = texts.commonDistances;\r\n            \r\n            const unitSelect = document.getElementById('unit');\r\n            unitSelect.options[0].textContent = texts.kilometers;\r\n            unitSelect.options[1].textContent = texts.miles;\r\n            \r\n            updateUnits();\r\n        }\r\n\r\n        function updateInitialValues() {\r\n            const unit = document.getElementById('unit').value;\r\n            if (unit === 'km') {\r\n                document.getElementById('distance').value = 10;\r\n                document.getElementById('timeHours').value = 0;\r\n                document.getElementById('timeMinutes').value = 50;\r\n                document.getElementById('timeSeconds').value = 0;\r\n            } else {\r\n                document.getElementById('distance').value = 5;\r\n                document.getElementById('timeHours').value = 0;\r\n                document.getElementById('timeMinutes').value = 40;\r\n                document.getElementById('timeSeconds').value = 0;\r\n            }\r\n            calculateAll();\r\n        }\r\n\r\n        function calculateAll() {\r\n            const distance = parseFloat(document.getElementById('distance').value) || 0;\r\n            const hours = parseInt(document.getElementById('timeHours').value) || 0;\r\n            const minutes = parseInt(document.getElementById('timeMinutes').value) || 0;\r\n            const seconds = parseInt(document.getElementById('timeSeconds').value) || 0;\r\n            \r\n            if (distance <= 0) {\r\n                alert(texts.enterValidDistance);\r\n                return;\r\n            }\r\n\r\n            const totalSeconds = (hours * 3600) + (minutes * 60) + seconds;\r\n            const paceInSeconds = Math.round(totalSeconds \/ distance);\r\n            \r\n            updatePaceFields(paceInSeconds);\r\n            updateSpeedField();\r\n            calculateCommonDistances();\r\n        }\r\n\r\n        function calculateFromDistance() {\r\n            const distance = parseFloat(document.getElementById('distance').value) || 0;\r\n            const paceMinutes = parseInt(document.getElementById('paceMinutes').value) || 0;\r\n            const paceSeconds = parseInt(document.getElementById('paceSeconds').value) || 0;\r\n            \r\n            const paceInSeconds = (paceMinutes * 60) + paceSeconds;\r\n            const totalSeconds = Math.round(distance * paceInSeconds);\r\n            \r\n            updateTimeFields(totalSeconds);\r\n            updateSpeedField();\r\n            calculateCommonDistances();\r\n        }\r\n\r\n        function calculateFromTime() {\r\n            const hours = parseInt(document.getElementById('timeHours').value) || 0;\r\n            const minutes = parseInt(document.getElementById('timeMinutes').value) || 0;\r\n            const seconds = parseInt(document.getElementById('timeSeconds').value) || 0;\r\n            const distance = parseFloat(document.getElementById('distance').value) || 0;\r\n            \r\n            if (distance <= 0) return;\r\n            \r\n            const totalSeconds = (hours * 3600) + (minutes * 60) + seconds;\r\n            const paceInSeconds = Math.round(totalSeconds \/ distance);\r\n            \r\n            updatePaceFields(paceInSeconds);\r\n            updateSpeedField();\r\n            calculateCommonDistances();\r\n        }\r\n\r\n        function calculateFromSpeed() {\r\n            const speed = parseFloat(document.getElementById('speed').value) || 0;\r\n            const distance = parseFloat(document.getElementById('distance').value) || 0;\r\n            \r\n            if (speed <= 0 || distance <= 0) return;\r\n            \r\n            const timeInHours = distance \/ speed;\r\n            const totalSeconds = Math.round(timeInHours * 3600);\r\n            \r\n            updateTimeFields(totalSeconds);\r\n            updatePaceFields(Math.round(3600 \/ speed));\r\n            calculateCommonDistances();\r\n        }\r\n\r\n        function calculateFromPace() {\r\n            const paceMinutes = parseInt(document.getElementById('paceMinutes').value) || 0;\r\n            const paceSeconds = parseInt(document.getElementById('paceSeconds').value) || 0;\r\n            const distance = parseFloat(document.getElementById('distance').value) || 0;\r\n            \r\n            if (distance <= 0) return;\r\n            \r\n            const paceInSeconds = (paceMinutes * 60) + paceSeconds;\r\n            const totalSeconds = Math.round(distance * paceInSeconds);\r\n            \r\n            updateTimeFields(totalSeconds);\r\n            updateSpeedField();\r\n            calculateCommonDistances();\r\n        }\r\n\r\n        function updateTimeFields(totalSeconds) {\r\n            const hours = Math.floor(totalSeconds \/ 3600);\r\n            const minutes = Math.floor((totalSeconds % 3600) \/ 60);\r\n            const seconds = Math.floor(totalSeconds % 60);\r\n            \r\n            document.getElementById('timeHours').value = hours;\r\n            document.getElementById('timeMinutes').value = minutes;\r\n            document.getElementById('timeSeconds').value = seconds;\r\n        }\r\n\r\n        function updatePaceFields(paceInSeconds) {\r\n            const paceMinutes = Math.floor(paceInSeconds \/ 60);\r\n            const paceSeconds = Math.floor(paceInSeconds % 60);\r\n            \r\n            document.getElementById('paceMinutes').value = paceMinutes;\r\n            document.getElementById('paceSeconds').value = paceSeconds;\r\n        }\r\n\r\n        function updateSpeedField() {\r\n            const distance = parseFloat(document.getElementById('distance').value) || 0;\r\n            const hours = parseInt(document.getElementById('timeHours').value) || 0;\r\n            const minutes = parseInt(document.getElementById('timeMinutes').value) || 0;\r\n            const seconds = parseInt(document.getElementById('timeSeconds').value) || 0;\r\n            \r\n            const totalHours = hours + (minutes \/ 60) + (seconds \/ 3600);\r\n            const speed = distance \/ totalHours;\r\n            \r\n            document.getElementById('speed').value = speed.toFixed(2);\r\n        }\r\n\r\n        function calculateCommonDistances() {\r\n            const paceMinutes = parseInt(document.getElementById('paceMinutes').value) || 0;\r\n            const paceSeconds = parseInt(document.getElementById('paceSeconds').value) || 0;\r\n            const unit = document.getElementById('unit').value;\r\n            const paceInSeconds = (paceMinutes * 60) + paceSeconds;\r\n\r\n            const distances = {\r\n                '5K': unit === 'km' ? 5 : 3.10686,\r\n                '10K': unit === 'km' ? 10 : 6.21371,\r\n                'Half Marathon': unit === 'km' ? 21.0975 : 13.1094,\r\n                'Marathon': unit === 'km' ? 42.195 : 26.2188\r\n            };\r\n\r\n            for (const [name, dist] of Object.entries(distances)) {\r\n                const totalSeconds = Math.round(dist * paceInSeconds);\r\n                const elementId = name.toLowerCase().replace(\/\\s+\/g, '') + 'Result';\r\n                displayTime(totalSeconds, elementId);\r\n            }\r\n        }\r\n\r\n        function displayTime(totalSeconds, elementId) {\r\n            const hours = Math.floor(totalSeconds \/ 3600);\r\n            const minutes = Math.floor((totalSeconds % 3600) \/ 60);\r\n            const seconds = Math.floor(totalSeconds % 60);\r\n\r\n            let timeString = '';\r\n            if (hours > 0) {\r\n                timeString += `${hours}:${minutes.toString().padStart(2, '0')}:`;\r\n            } else {\r\n                timeString += `${minutes}:`;\r\n            }\r\n            timeString += seconds.toString().padStart(2, '0');\r\n\r\n            document.getElementById(elementId).textContent = timeString;\r\n        }\r\n\r\n        function updateUnits() {\r\n            const isKm = document.getElementById('unit').value === 'km';\r\n            document.getElementById('paceUnit').textContent = isKm ? texts.perKm : texts.perMile;\r\n            document.getElementById('speedUnit').textContent = isKm ? texts.speedKmH : texts.speedMpH;\r\n        }\r\n\r\n        document.getElementById('unit').addEventListener('change', function() {\r\n            updateUnits();\r\n            updateInitialValues();\r\n        });\r\n\r\n        \/\/ Initialize with default values\r\n        window.onload = function() {\r\n            initializeTexts();\r\n            updateInitialValues();\r\n        };\r\n    <\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>Unit: KilometersMiles Distance: Time: : : Speed: km\/h P &#8230; <a title=\"\u901f\u5ea6\u8ba1\u7b97\u5668\" class=\"read-more\" href=\"https:\/\/www.fastercalculator.com\/zh-hans\/%e8%bf%90%e5%8a%a8%e8%ae%a1%e7%ae%97%e5%99%a8\/%e9%80%9f%e5%ba%a6%e8%ae%a1%e7%ae%97%e5%99%a8\/\" aria-label=\"\u9605\u8bfb \u901f\u5ea6\u8ba1\u7b97\u5668\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":52,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-56","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/pages\/56","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=56"}],"version-history":[{"count":11,"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/pages\/56\/revisions"}],"predecessor-version":[{"id":71,"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/pages\/56\/revisions\/71"}],"up":[{"embeddable":true,"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/pages\/52"}],"wp:attachment":[{"href":"https:\/\/www.fastercalculator.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=56"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}