Drinking Age Calculator

Drinking Age Calculator

January February March April May June July August September October November December
21 (USA, etc.) 18 (UK, Australia, Canada, Mexico, etc.) 19 (South Korea, some Canadian provinces) 16 (Germany, Austria – beer/wine only) 20 (Japan, Iceland, Thailand) 25 (Eritrea)


How the Drinking Age Calculator Works

This calculator determines if a person has reached the minimum legal drinking age (MLDA) based on their date of birth and the local regulations of their current location. While 21 is the standard in the United States, many countries around the world allow consumption at 18 or even 16.

Understanding Legal Drinking Ages Globally

The legal drinking age is the minimum age at which a person is legally allowed to consume or purchase alcoholic beverages. These laws vary significantly by jurisdiction:

  • United States: The National Minimum Drinking Age Act of 1984 requires all states to set the age at 21.
  • United Kingdom & Europe: Most European countries set the age at 18. Some countries like Germany and Belgium allow the purchase of beer and wine at 16.
  • Canada: The age is set by the province. It is 19 in most provinces, except for Quebec, Manitoba, and Alberta, where it is 18.
  • Asia: Ages vary from 18 to 21. For example, Japan sets the limit at 20.

Example Calculations

To give you an idea of how the math works, consider these scenarios:

  • Scenario A: Born June 15, 2005. Location: USA (Age 21). As of 2024, they are 19 years old. Result: Illegal (2 years remaining).
  • Scenario B: Born March 10, 2004. Location: UK (Age 18). As of 2024, they are 20 years old. Result: Legal.

Important Legal Disclaimer

This calculator is for informational purposes only. Local laws may vary regarding private consumption, parental supervision, and specific types of alcohol. Always carry a valid government-issued ID and never drink and drive. Laws are subject to change, and users should verify local statutes with official authorities.

function calculateDrinkingAge() { var month = parseInt(document.getElementById("birthMonth").value); var day = parseInt(document.getElementById("birthDay").value); var year = parseInt(document.getElementById("birthYear").value); var legalLimit = parseInt(document.getElementById("legalLimit").value); var resultArea = document.getElementById("resultArea"); var statusTitle = document.getElementById("statusTitle"); var ageText = document.getElementById("ageText"); var countdownText = document.getElementById("countdownText"); if (!day || !year || day 31 || year 2024) { alert("Please enter a valid Date of Birth."); return; } var today = new Date(); var birthDate = new Date(year, month, day); // Check for valid date object (e.g., prevents Feb 31st) if (birthDate.getMonth() !== month) { alert("The date entered is invalid for the selected month."); return; } var age = today.getFullYear() – birthDate.getFullYear(); var m = today.getMonth() – birthDate.getMonth(); if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { age–; } resultArea.style.display = "block"; ageText.innerHTML = "You are currently " + age + " years old."; if (age >= legalLimit) { resultArea.style.backgroundColor = "#d4edda"; resultArea.style.border = "1px solid #c3e6cb"; statusTitle.innerHTML = "✅ YOU ARE LEGAL"; statusTitle.style.color = "#155724"; countdownText.innerHTML = "You have reached the legal age for this location."; } else { resultArea.style.backgroundColor = "#f8d7da"; resultArea.style.border = "1px solid #f5c6cb"; statusTitle.innerHTML = "❌ NOT LEGAL YET"; statusTitle.style.color = "#721c24"; var legalYear = year + legalLimit; var legalDate = new Date(legalYear, month, day); var diffTime = Math.abs(legalDate – today); var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); var yearsLeft = legalLimit – age – 1; if (m > 0 || (m === 0 && today.getDate() >= birthDate.getDate())) { // Adjust if birthday already happened this year } countdownText.innerHTML = "You will be legal on " + legalDate.toDateString() + " (In approx. " + diffDays + " days)."; } resultArea.scrollIntoView({ behavior: 'smooth' }); }

Leave a Reply

Your email address will not be published. Required fields are marked *