��<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Target Heart Rate Calculator - Training Zone Calculator | Free Online Tool</title> <meta name="description" content="Calculate your target heart rate zones for optimal training. Free target heart rate calculator with age-based formulas, training zones, and personalized recommendations for cardio workouts."> <meta name="keywords" content="target heart rate calculator, training zones, maximum heart rate, cardio calculator, exercise heart rate, fitness calculator, workout zones"> <meta name="author" content="Calculator Tools"> <meta name="robots" content="index, follow"> <link rel="canonical" href="https://calculatortools.com/target-heart-rate-calculator.html"> <!-- Open Graph Tags --> <meta property="og:title" content="Target Heart Rate Calculator - Training Zone Calculator"> <meta property="og:description" content="Calculate your target heart rate zones for optimal training. Free calculator with age-based formulas and personalized workout recommendations."> <meta property="og:type" content="website"> <meta property="og:url" content="https://calculatortools.com/target-heart-rate-calculator.html"> <meta property="og:image" content="https://calculatortools.com/images/target-heart-rate-calculator.jpg"> <meta property="og:site_name" content="Calculator Tools"> <!-- Twitter Card Tags --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Target Heart Rate Calculator - Training Zone Calculator"> <meta name="twitter:description" content="Calculate your target heart rate zones for optimal training. Free calculator with age-based formulas."> <meta name="twitter:image" content="https://calculatortools.com/images/target-heart-rate-calculator.jpg"> <!-- Schema Markup --> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "SoftwareApplication", "name": "Target Heart Rate Calculator", "description": "Calculate your target heart rate zones for optimal training and exercise", "url": "https://calculatortools.com/target-heart-rate-calculator.html", "applicationCategory": "HealthApplication", "operatingSystem": "Web Browser", "permissions": "browser", "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }, "creator": { "@type": "Organization", "name": "Calculator Tools" } } </script> <link rel="stylesheet" href="styles.css"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> <link rel="icon" type="image/x-icon" href="favicon.ico"> <style> .calculator-container { max-width: 800px; margin: 20px auto; padding: 20px; background: white; border-radius: 10px; box-shadow: 0 0 10px rgba(0,0,0,0.1); } .input-group { margin-bottom: 20px; } .input-group label { display: block; margin-bottom: 5px; font-weight: bold; color: #333; } .input-group input { width: 100%; padding: 10px; border: 2px solid #ddd; border-radius: 5px; font-size: 16px; } .calculate-btn { background: #007bff; color: white; padding: 12px 30px; border: none; border-radius: 5px; font-size: 18px; cursor: pointer; width: 100%; margin: 20px 0; } .calculate-btn:hover { background: #0056b3; } .results { margin-top: 30px; padding: 20px; background: #f8f9fa; border-radius: 8px; border-left: 4px solid #007bff; } .zone-card { background: white; padding: 15px; margin: 10px 0; border-radius: 8px; border-left: 4px solid #28a745; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .zone-title { font-weight: bold; color: #333; margin-bottom: 5px; } .zone-range { font-size: 18px; color: #007bff; font-weight: bold; } .zone-description { color: #666; margin-top: 5px; } .info-section { background: #e9ecef; padding: 20px; border-radius: 8px; margin: 20px 0; } .formula-section { background: #fff3cd; padding: 15px; border-radius: 8px; margin: 15px 0; border-left: 4px solid #ffc107; } @media (max-width: 768px) { .calculator-container { margin: 10px; padding: 15px; } } </style> </head> <body> <header class="header"> <div class="container"> <div class="logo"> <i class="fas fa-calculator"></i> <span>Calculator Tools</span> </div> <nav class="nav-menu"> <a href="index.html" class="nav-link">Home</a> <a href="#financial" class="nav-link">Financial</a> <a href="#health" class="nav-link active">Health & Fitness</a> <a href="#math" class="nav-link">Math</a> <a href="#time" class="nav-link">Time & Date</a> <a href="#other" class="nav-link">Other Tools</a> </nav> <div class="mobile-menu-toggle"> <i class="fas fa-bars"></i> </div> </div> </header> <div class="container"> <header> <h1>Target Heart Rate Calculator</h1> <p>Calculate your optimal heart rate zones for different types of exercise and training intensity levels.</p> </header> <div class="calculator-container"> <div class="input-group"> <label for="age">Age (years):</label> <input type="number" id="age" min="10" max="100" placeholder="Enter your age"> </div> <div class="input-group"> <label for="restingHR">Resting Heart Rate (optional - bpm):</label> <input type="number" id="restingHR" min="40" max="120" placeholder="Enter resting heart rate (if known)"> <small style="color: #666;">Leave blank to use age-only formula (220 - age)</small> </div> <button class="calculate-btn" onclick="calculateTargetHR()">Calculate Target Heart Rate Zones</button> <div id="results" class="results" style="display: none;"> <h3>Your Heart Rate Training Zones</h3> <div id="maxHR"></div> <div id="zones"></div> </div> </div> <div class="info-section"> <h3>Understanding Heart Rate Training Zones</h3> <div class="zone-card"> <div class="zone-title">Zone 1: Active Recovery (50-60%)</div> <div class="zone-description">Light activity for warm-up, cool-down, and recovery days. Improves overall health and aids recovery.</div> </div> <div class="zone-card"> <div class="zone-title">Zone 2: Base/Aerobic (60-70%)</div> <div class="zone-description">Comfortable aerobic exercise. Builds aerobic base, burns fat, improves cardiovascular health.</div> </div> <div class="zone-card"> <div class="zone-title">Zone 3: Aerobic (70-80%)</div> <div class="zone-description">Moderate to moderately hard exercise. Improves aerobic capacity and endurance.</div> </div> <div class="zone-card"> <div class="zone-title">Zone 4: Threshold (80-90%)</div> <div class="zone-description">Hard exercise at lactate threshold. Improves performance and lactate tolerance.</div> </div> <div class="zone-card"> <div class="zone-title">Zone 5: Anaerobic (90-100%)</div> <div class="zone-description">Very hard exercise for short periods. Improves power, speed, and anaerobic capacity.</div> </div> </div> <div class="formula-section"> <h3>Calculation Methods</h3> <p><strong>Age-Only Formula:</strong> Maximum Heart Rate = 220 - Age</p> <p><strong>Karvonen Formula (with resting HR):</strong> Target HR = ((Max HR - Resting HR) � %Intensity) + Resting HR</p> <p><strong>Note:</strong> The Karvonen method is more accurate when resting heart rate is known.</p> </div> <div class="info-section"> <h3>How to Use This Calculator</h3> <ol> <li>Enter your age (required)</li> <li>Optionally enter your resting heart rate for more accurate results</li> <li>View your personalized heart rate training zones</li> <li>Use these zones to guide your workout intensity</li> </ol> <h3>Tips for Measuring Resting Heart Rate</h3> <ul> <li>Measure first thing in the morning before getting out of bed</li> <li>Count your pulse for 60 seconds or count for 15 seconds and multiply by 4</li> <li>Take measurements over several days and use the average</li> <li>Normal resting heart rate is typically 60-100 bpm for adults</li> </ul> </div> </div> <footer class="footer"> <div class="container"> <div class="footer-content"> <div class="footer-section"> <h4>Calculator Tools</h4> <ul> <li><a href="index.html">Home</a></li> <li><a href="sitemap.html">All Calculators</a></li> <li><a href="#about">About</a></li> </ul> </div> <div class="footer-section"> <h4>Categories</h4> <ul> <li><a href="#financial">Financial</a></li> <li><a href="#health">Health & Fitness</a></li> <li><a href="#math">Math</a></li> <li><a href="#time">Time & Date</a></li> </ul> </div> <div class="footer-section"> <h4>Support</h4> <ul> <li><a href="#privacy">Privacy Policy</a></li> <li><a href="#terms">Terms of Use</a></li> <li><a href="#contact">Contact</a></li> </ul> </div> </div> <div class="footer-bottom"> <p>&copy; 2024 Calculator Tools. All rights reserved.</p> <p>Designed & Developed by <strong>Long Th�i B�o</strong> | Unauthorized copying is strictly prohibited</p> <p><small>All content, design, and code are protected by copyright law</small></p> </div> </div> </footer> <script> function calculateTargetHR() { const age = parseInt(document.getElementById('age').value); const restingHR = parseInt(document.getElementById('restingHR').value) || null; if (!age || age < 10 || age > 100) { alert('Please enter a valid age between 10 and 100 years.'); return; } // Calculate maximum heart rate const maxHR = 220 - age; // Define training zones const zones = [ { name: 'Zone 1: Active Recovery', min: 50, max: 60, color: '#28a745' }, { name: 'Zone 2: Base/Aerobic', min: 60, max: 70, color: '#17a2b8' }, { name: 'Zone 3: Aerobic', min: 70, max: 80, color: '#ffc107' }, { name: 'Zone 4: Threshold', min: 80, max: 90, color: '#fd7e14' }, { name: 'Zone 5: Anaerobic', min: 90, max: 100, color: '#dc3545' } ]; let resultsHTML = `<div style="text-align: center; margin-bottom: 20px;"> <div style="font-size: 24px; font-weight: bold; color: #007bff;"> Maximum Heart Rate: ${maxHR} bpm </div>`; if (restingHR) { resultsHTML += `<div style="font-size: 16px; color: #666; margin-top: 5px;"> Resting Heart Rate: ${restingHR} bpm (Karvonen method used) </div>`; } else { resultsHTML += `<div style="font-size: 16px; color: #666; margin-top: 5px;"> Using age-only formula (220 - age) </div>`; } resultsHTML += '</div>'; zones.forEach(zone => { let minHR, maxHRZone; if (restingHR) { // Karvonen formula minHR = Math.round(((maxHR - restingHR) * (zone.min / 100)) + restingHR); maxHRZone = Math.round(((maxHR - restingHR) * (zone.max / 100)) + restingHR); } else { // Simple percentage of max HR minHR = Math.round(maxHR * (zone.min / 100)); maxHRZone = Math.round(maxHR * (zone.max / 100)); } resultsHTML += ` <div class="zone-card" style="border-left-color: ${zone.color};"> <div class="zone-title">${zone.name} (${zone.min}-${zone.max}%)</div> <div class="zone-range">${minHR} - ${maxHRZone} bpm</div> </div> `; }); document.getElementById('zones').innerHTML = resultsHTML; document.getElementById('results').style.display = 'block'; // Scroll to results document.getElementById('results').scrollIntoView({ behavior: 'smooth', block: 'start' }); } // Allow Enter key to calculate document.addEventListener('keypress', function(e) { if (e.key === 'Enter') { calculateTargetHR(); } }); </script> </body> </html>