Japanese School Grade Calculator (early-birth aware)
From a date of birth (and optional reference date), figure out the Japanese school grade — preschool, elementary, junior-high, high-school, university — with proper handling of *hayauumare* (early-birth, 1 Jan – 1 Apr) and the 1 April / 31 March academic year. Also lists key milestones: elementary / junior-high / high-school entry and graduation dates.
How to use
Enter a **date of birth** (reference defaults to today) and the tool computes the Japanese school grade — preschool / elementary / junior-high / high-school / university — along with calendar age, **school age** (age relative to the 1 April – 31 March academic year), and an **early-birth flag** (`hayauumare`: 1 Jan – 1 Apr). The cutoff follows Japan's School Education Act: a child reaches age 6 on the day **before** their 6th birthday, so kids born up to 1 April attend the previous fiscal year's first grade. **Key milestones** (Grade 1 entry, junior-high entry, high-school graduation, university graduation) are listed underneath. Useful for age-to-grade lookups, timelines, classmate-movie sleuthing, and parenting plans.
In depth
A child’s birthdate and grade reveal family context
A child’s date of birth combined with their school grade is information that reveals the parent’s life stage: parenting a primary-school child, supporting a high-schooler approaching university entrance exams. For advertisers targeting families, that combination is high-value: it pinpoints the child’s age precisely enough to target school supplies, tutoring services, and extracurricular activities.
The ‘hayauumare’ (early-birth) flag narrows the birth window to January 1 – April 1. Combined with the grade and birth year, it can be used to estimate a birth month with significant precision. A child’s birthdate is not only the child’s information — it is also a parenting-lifecycle datapoint that marketers actively seek.
The risk of registering a child’s birthdate with an education service
Most educational apps and child-development trackers request a child’s birthdate to personalise content and track milestones. That date then sits in an external database, associated with a parent account. When those services partner with advertisers for children’s products, the birthdate drives age-targeted advertising.
COPPA (US), GDPR (EU), and Japan’s personal information protection law all extend special protections to children’s data — but legal protection does not eliminate risk. Data that has left your device is difficult to delete in practice even when the law grants you the right.
Grade determined by two statutes and Date arithmetic
This tool implements the Age Calculation Act (1902) and Civil Code Article 143 in JavaScript: a person turns N years old at the end of the day before their Nth birthday. So a child born on April 1 reaches age 6 on March 31 — the last day of the academic year — and enters Grade 1 that same April rather than the following year. Grade determination is current_fiscal_year − birth_school_year − 1, computed with Date object comparisons only.
No external API is called. Open DevTools Network while changing the birthdate: zero additional requests. The grade logic is in the GitHub source for audit.
Practical uses and things to confirm
The hayauumare flag matters beyond school entry: sports club age classifications, music-class groupings, and competition registration ages often follow the same April 2 cutoff. When relative age effect (developmental advantage of older children within the same grade) is a concern, accurate early-birth determination is especially important.
Adjust the reference date to check grade at future milestones: ‘what grade will they be in on April 1 next year?’ for school-transition planning, or ‘are they eligible for the scholarship by the cutoff date?’ All calculations run in your browser, so you can iterate without the child’s birthdate leaving your device.
How Civil Code Article 143 and the 1902 Age Act define the calculation
Grade determination resolves to “what is the full age on April 1 of fiscal year N,” which derives from Civil Code Article 143 and the 1902 Age Calculation Act (Meiji 35, Law No. 50). Article 143 sets the rule that periods begin counting from the day after the trigger, and a person reaches the next full age at the end of the day before their birthday. A child born on April 1 therefore reaches age 6 at the end of March 31 — the final day of that academic year — meeting the age requirement for grade 1 entry that same April. This is the statutory basis for treating April-1 babies as part of the previous fiscal year’s cohort.
In JavaScript, the fiscal year is fiscalYear = (date.getMonth() >= 3) ? date.getFullYear() : date.getFullYear() - 1, and the grade age is gradeAge = referenceFiscalYear - (birth.getMonth() >= 3 ? birth.getFullYear() : birth.getFullYear() - 1) - 1. getMonth() is zero-indexed, so April is 3. The 1949 Age Naming Act (Showa 24, Law No. 96) encourages the use of full age in everyday life, and the Family Registration Act and the School Education Act both align with that convention. Prior to the 1873 switch from the lunar to the solar calendar, kazoe-doshi was the standard; modern grade arithmetic uses full age exclusively.
Hayauumare classification and the relative age effect
“Hayauumare” (children born January 1 through April 1) can be up to eleven months younger than the oldest cohort members in the same grade. Physical and academic differences at this developmental stage are documented internationally under the term “relative age effect.” Birth-month distributions of professional Japanese athletes (NPB baseball, J.League soccer) skew toward April–September, suggesting that body-size differences during youth team selection systematically advantage older-cohort children. This tool’s hayauumare flag (strict April-1 cutoff) can serve as one of the reference points when interpreting performance differences in children’s activities.
A practical pitfall: new Date('2026-04-01') parses as UTC, so getDate() in Asia/Tokyo (UTC+9) returns 4/1 while the internal timestamp is 3/31 15:00 UTC. Use the constructor form new Date(2026, 3, 1) (note that month 3 = April with zero-indexed months) or anchor on Date.UTC() consistently. Returnee children and children educated overseas can fall under different rules; consult MEXT (Ministry of Education) transfer guidelines for those cases. International schools in Japan often follow the US K–12 system with September entry, which this tool does not model — the September cutoff and 12-year structure are categorically different from the Japanese 6-3-3 fiscal-year system. To see the child’s full age in “Y years, M months” alongside the grade, age-calc shares the same statute basis; to lay out entrance ceremonies and observation days on a Japanese-holiday business-day count, business-day-jp keeps that arithmetic browser-local as well.
FAQ
- Is my input uploaded?
- No. Everything runs in your browser — pure date arithmetic, no external API.
- What's *hayauumare* (early birth)?
- Children born **1 January – 1 April** in Japan, who start school one fiscal year ahead of their later-born birth-year peers. Japan's academic year runs 1 April – 31 March, and you reach age 6 on the day *before* your sixth birthday — so a child born on 1 April reaches 6 on 31 March, the very last day of the previous year, qualifying them for that year's Grade 1.
- Why is 1 April counted as early-birth?
- Two statutes do the work: the **Age Calculation Act (1902)** and **Civil Code Article 143** — a person turns N years old at the end of the previous day. So a 1 April baby reaches 6 on 31 March, which falls inside the academic year ending that day, so they enter Grade 1 *that* April — making them a year ahead of the kids born 2 April or later. Legally clean, but it surprises plenty of parents.
- What is *gakurei* (school age)?
- *Gakurei* (学齢) is the full age the child has reached as of 1 April of that academic year. School age 6 = Grade 1, 7 = Grade 2, … 12 = Junior 1, 15 = Senior 1, 18 = University year 1. We compute it as `current_fiscal_year − birth_school_year − 1`, with 1 April births treated as the previous year. An early-birth child winds up one school-age higher than a later-born peer of the same calendar age.
- Use case: figuring out classmates in a movie
- If a film shows a character in Grade 11 in August 2016 (school age 16), they were born in school year `2016 − 16 − 1 = 1999` (2 April 1999 – 1 April 2000). Pop a candidate birthdate in here with 2016-08 as the reference and the tool labels them Senior 2 immediately.
- Does it cover term breakdowns (2-term / 3-term)?
- No. We only report the full school year (April – March). Term boundaries vary by school, region, and year, so they aren't included.
- Other countries' grade systems?
- Not supported. US K-12 (Aug / Sep start), UK (Sep start, Year 1 – 13), Korea (March start) all differ enough that they'd need separate tools. This one is Japan-only.
How to verify nothing is uploaded
This tool never sends your input outside your browser. The pages below explain how it works, how to audit it, and how the site is run.
Related tools
Age calculator — from birthday to years, zodiac & day count
Enter a birth date and a reference date to get the full age in years, days lived, Eastern zodiac (12 animals), and Western zodiac. Change the reference date to compute the age at any past or future point. Everything runs inside your browser — your birthday never leaves the page.
JP business-day calculator — count workdays excluding holidays
Compute the date that is N business days before or after a given date, skipping Japanese national holidays plus weekends. Handles substitute holidays, citizen's holidays, and vernal/autumnal equinoxes (1955-2099). Useful for due dates, settlement dates, and Japan-side delivery scheduling. Runs entirely in your browser.
Week numbering — ISO 8601 / US / Middle East / simple side by side + calendar view
For any date, see all four common **week-numbering systems** side by side: **ISO 8601** (Monday start, week-of-Jan-4 = W01); **US** (Sunday start, week-of-Jan-1 = W01); **Middle East** (Saturday start, ISO-style anchor); **Simple** (Jan 1 = Day 1, then every 7 days). Useful for sprint planning across SaaS tools (Linear / Jira week-of-year), or for debugging the classic "W21 means different dates in Berlin and Boston" problem. Scroll through months and hover the calendar to see how each system numbers the weeks; year-boundary edge cases show clearly. Sister tool to `iso-week` (single ISO conversion); this tool focuses on **comparison and calendar visualisation**. Runs entirely in your browser.
Anniversary counter — years/months/days/hours since a date
Type a start date (relationship, wedding, business launch, fan-club anniversary) and instantly see the elapsed time as 『Y years M months D days』, weeks, days, hours, minutes, and seconds. Upcoming milestones (100, 200, 1000 days, 1/5/10 year marks…) are computed with their own countdowns. Updates every second; copy any value in one click. Where age-calc is birthday-specific, this tool fits any anniversary. Everything runs in your browser.