Enter the Gregorian date of death below to find the corresponding Hebrew date and upcoming Yahrzeit dates.
January
February
March
April
May
June
July
August
September
October
November
December
.yahrzeit-calculator {
background-color: #f9f9f9;
border: 1px solid #ddd;
padding: 20px;
border-radius: 8px;
max-width: 600px;
margin: 20px auto;
font-family: Arial, sans-serif;
}
.yahrzeit-calculator h2 {
color: #333;
text-align: center;
margin-bottom: 20px;
}
.yahrzeit-calculator p {
margin-bottom: 15px;
line-height: 1.6;
}
.calculator-input-group {
margin-bottom: 15px;
display: flex;
flex-direction: column;
}
.calculator-input-group label {
margin-bottom: 5px;
font-weight: bold;
color: #555;
}
.calculator-input-group input[type="number"],
.calculator-input-group select {
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
width: 100%;
box-sizing: border-box;
}
.calculator-input-group.checkbox-group {
flex-direction: row;
align-items: center;
}
.calculator-input-group.checkbox-group input[type="checkbox"] {
margin-right: 10px;
width: auto;
}
.yahrzeit-calculator button {
background-color: #007bff;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
font-size: 18px;
cursor: pointer;
display: block;
width: 100%;
margin-top: 20px;
}
.yahrzeit-calculator button:hover {
background-color: #0056b3;
}
.calculator-result {
margin-top: 25px;
padding: 15px;
border: 1px solid #e0e0e0;
border-radius: 6px;
background-color: #eef;
}
.calculator-result h3,
.calculator-result h4 {
color: #333;
margin-top: 0;
margin-bottom: 10px;
}
.calculator-result p {
margin-bottom: 8px;
}
.calculator-result ul {
list-style-type: disc;
margin-left: 20px;
padding-left: 0;
}
.calculator-result li {
margin-bottom: 5px;
}
// Constants for Hebrew calendar calculations
var HEBREW_MONTH_NAMES = [
"", // 0-indexed, but Hebrew months are 1-indexed
"Nisan", "Iyar", "Sivan", "Tammuz", "Av", "Elul",
"Tishrei", "Cheshvan", "Kislev", "Tevet", "Shevat",
"Adar", "Adar I", "Adar II" // Adar I and Adar II for leap years
];
// Julian Day Number (JDN) for 1 Tishrei, 1 Hebrew Year (Molad of Tishrei, Year 1)
var HEB_EPOCH = 347997.5; // 1 Tishrei, 1 AM, at 5 hours, 204 parts (Molad of Tishrei)
// Helper function to determine if a Hebrew year is a leap year
function isHebrewLeap(hYear) {
var b = (hYear * 7 + 1);
return (b % 19 = 0.5) {
day++;
}
// Dechiyah 2: Addu Lo Rosh (if molad is on Sunday, Wednesday, or Friday)
if (day % 7 === 0 || day % 7 === 3 || day % 7 === 5) { // 0=Sun, 1=Mon, …, 6=Sat
day++;
}
// Dechiyah 3: Betutkafot (if molad of a non-leap year is on Tuesday, 9h 204p or later)
if (!isHebrewLeap(hYear) && day % 7 === 2 && frac >= (9 / 24 + 204 / 1080 / 24)) {
day++;
}
// Dechiyah 4: Gatarad (if molad of a leap year is on Monday, 15h 589p or later)
if (isHebrewLeap(hYear – 1) && day % 7 === 1 && frac >= (15 / 24 + 589 / 1080 / 24)) {
day++;
}
return day;
}
// Get information about a Hebrew year's structure (lengths of Cheshvan, Kislev, total year length)
function getHebrewYearInfo(hYear) {
var rh1 = getRoshHashanahJDN(hYear);
var rh2 = getRoshHashanahJDN(hYear + 1);
var yearLength = rh2 – rh1;
var cheshvanLength = 29;
var kislevLength = 29;
// Determine Cheshvan and Kislev lengths based on yearLength
// 353, 383: Deficient (Chaser) – Cheshvan 29, Kislev 29
// 354, 384: Regular (Kesidran) – Cheshvan 29, Kislev 30
// 355, 385: Full (Shalem) – Cheshvan 30, Kislev 30
if (yearLength === 353 || yearLength === 383) { // Deficient
cheshvanLength = 29;
kislevLength = 29;
} else if (yearLength === 354 || yearLength === 384) { // Regular
cheshvanLength = 29;
kislevLength = 30;
} else if (yearLength === 355 || yearLength === 385) { // Full
cheshvanLength = 30;
kislevLength = 30;
}
return {
cheshvan: cheshvanLength,
kislev: kislevLength,
yearLength: yearLength
};
}
// Get number of days in a specific Hebrew month for a specific Hebrew year
function daysInHebrewMonth(hYear, hMonth) {
var yearInfo = getHebrewYearInfo(hYear);
var isLeap = isHebrewLeap(hYear);
switch (hMonth) {
case 1: // Nisan
case 3: // Sivan
case 5: // Av
case 7: // Tishrei
case 10: // Tevet
return 30;
case 2: // Iyar
case 4: // Tammuz
case 6: // Elul
case 11: // Shevat
return 29;
case 8: // Cheshvan
return yearInfo.cheshvan;
case 9: // Kislev
return yearInfo.kislev;
case 12: // Adar (or Adar I in leap year)
return isLeap ? 30 : 29;
case 13: // Adar II (only in leap year)
return isLeap ? 29 : 0; // Should not be called for non-leap year, or return 0 if invalid
default:
return 0; // Invalid month
}
}
// Convert Julian Day Number to Hebrew Date
function julianToHebrew(jd) {
var jd0 = Math.floor(jd) + 0.5; // Start of the day
var hYear = Math.floor(((jd0 – HEB_EPOCH) / 365.2468)); // Approximation
var hMonth, hDay;
// Adjust hYear until jd0 falls within its range
while (jd0 = getRoshHashanahJDN(hYear + 1)) {
hYear++;
}
var startOfYearJDN = getRoshHashanahJDN(hYear); // 1 Tishrei
var daysIntoYear = jd0 – startOfYearJDN;
// Determine month and day
hMonth = 7; // Start with Tishrei
var currentMonthDays = 0;
var isLeap = isHebrewLeap(hYear);
// Iterate through months from Tishrei (7) to Elul (6) in order
var monthOrder = [7, 8, 9, 10, 11, 12]; // Tishrei to Adar (or Adar I)
if (isLeap) {
monthOrder.push(13); // Adar II
}
monthOrder = monthOrder.concat([1, 2, 3, 4, 5, 6]); // Nisan to Elul
for (var i = 0; i < monthOrder.length; i++) {
var m = monthOrder[i];
currentMonthDays = daysInHebrewMonth(hYear, m);
if (daysIntoYear < currentMonthDays) {
hMonth = m;
hDay = daysIntoYear + 1;
break;
}
daysIntoYear -= currentMonthDays;
}
return {
year: hYear,
month: hMonth,
day: hDay
};
}
// Convert Hebrew Date to Julian Day Number
function hebrewToJulian(hYear, hMonth, hDay) {
var currentJDN = getRoshHashanahJDN(hYear);
var isLeap = isHebrewLeap(hYear);
var monthOrder = [7, 8, 9, 10, 11, 12]; // Tishrei to Adar (or Adar I)
if (isLeap) {
monthOrder.push(13); // Adar II
}
monthOrder = monthOrder.concat([1, 2, 3, 4, 5, 6]); // Nisan to Elul
for (var i = 0; i < monthOrder.length; i++) {
var m = monthOrder[i];
if (m === hMonth) break;
currentJDN += daysInHebrewMonth(hYear, m);
}
currentJDN += (hDay – 1);
return currentJDN;
}
// Convert Gregorian Date to Julian Day Number
function gregorianToJulian(year, month, day) {
if (month <= 2) {
year–;
month += 12;
}
var A = Math.floor(year / 100);
var B = 2 – A + Math.floor(A / 4);
return Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day + B – 1524.5;
}
// Convert Julian Day Number to Gregorian Date
function julianToGregorian(jd) {
var J = Math.floor(jd + 0.5);
var f = J + 1401 + Math.floor((Math.floor((4 * J + 274277) / 146097) * 3) / 4) – 38;
var e = 4 * f + 3;
var g = Math.floor((e % 1461) / 4);
var h = 5 * g + 2;
var day = Math.floor((h % 153) / 5) + 1;
var month = Math.floor((h / 153 + 2) % 12) + 1;
var year = Math.floor(e / 1461) – 4716 + Math.floor((12 + 2 – month) / 12);
return {
year: year,
month: month,
day: day
};
}
// Helper to format Gregorian date
function formatGregorianDate(dateObj) {
var options = {
year: 'numeric',
month: 'long',
day: 'numeric'
};
return new Date(dateObj.year, dateObj.month – 1, dateObj.day).toLocaleDateString('en-US', options);
}
// Helper to format Hebrew date
function formatHebrewDate(hDate) {
var monthName = HEBREW_MONTH_NAMES[hDate.month]; // Default
var isLeap = isHebrewLeap(hDate.year);
if (hDate.month === 12) {
monthName = isLeap ? HEBREW_MONTH_NAMES[12] : HEBREW_MONTH_NAMES[11]; // Adar I or Adar
} else if (hDate.month === 13) {
monthName = isLeap ? HEBREW_MONTH_NAMES[13] : "Invalid Month"; // Adar II (only in leap year)
}
return hDate.day + " " + monthName + ", " + hDate.year;
}
// Main calculation function
function calculateYahrzeit() {
var month = parseInt(document.getElementById('gregorianMonth').value);
var day = parseInt(document.getElementById('gregorianDay').value);
var year = parseInt(document.getElementById('gregorianYear').value);
var afterSunset = document.getElementById('afterSunset').checked;
if (isNaN(month) || isNaN(day) || isNaN(year) || month 12 || day 31 || year 3000) {
document.getElementById('result').innerHTML = 'Please enter a valid Gregorian date of death.';
return;
}
// Validate day for specific month (e.g., February 30th)
var tempDate = new Date(year, month – 1, day);
if (tempDate.getMonth() + 1 !== month || tempDate.getDate() !== day || tempDate.getFullYear() !== year) {
document.getElementById('result').innerHTML = 'The Gregorian date entered is not valid (e.g., February 30th does not exist).';
return;
}
// Adjust date if death occurred after sunset
var deathGregorianDate = new Date(year, month – 1, day);
if (afterSunset) {
deathGregorianDate.setDate(deathGregorianDate.getDate() + 1);
year = deathGregorianDate.getFullYear();
month = deathGregorianDate.getMonth() + 1;
day = deathGregorianDate.getDate();
}
var jdOfDeath = gregorianToJulian(year, month, day);
var hebrewDeathDate = julianToHebrew(jdOfDeath);
var output = '
Yahrzeit Details:
';
output += 'Gregorian Date of Death: ' + formatGregorianDate({
year: year,
month: month,
day: day
}) + ";
output += 'Corresponding Hebrew Date of Death: ' + formatHebrewDate(hebrewDeathDate) + ";
output += '
Upcoming Yahrzeit Dates:
';
var currentHebrewYearForYahrzeit = hebrewDeathDate.year;
var originalHebrewMonthOfDeath = hebrewDeathDate.month;
var originalHebrewDayOfDeath = hebrewDeathDate.day;
// Calculate next 5 Yahrzeit dates
for (var i = 0; i daysInTargetMonth) {
targetHebrewDay = daysInTargetMonth; // Adjust day if it exceeds month length
}
var nextYahrzeitJd = hebrewToJulian(currentHebrewYearForYahrzeit, targetHebrewMonth, targetHebrewDay);
var nextYahrzeitGregorian = julianToGregorian(nextYahrzeitJd);
output += '
Understanding Yahrzeit: A Sacred Jewish Observance
Yahrzeit (pronounced YART-site) is a Yiddish word meaning "anniversary of a year." In Jewish tradition, it refers to the annual commemoration of a loved one's passing, observed according to the Hebrew calendar. This sacred practice is a profound way to honor the memory of the deceased, reflect on their life, and maintain a spiritual connection.
The Significance of Yahrzeit
Observing Yahrzeit is considered a great mitzvah (commandment or good deed) and a sign of respect for the departed. It is believed that on this day, the soul of the deceased ascends to a higher spiritual plane, and the living have an opportunity to elevate their soul further through prayer, study, and good deeds. Key observances include:
Lighting a Yahrzeit Candle: A special candle that burns for 24 hours is lit at sunset on the eve of the Yahrzeit.
Reciting Kaddish: The Mourner's Kaddish prayer is recited in synagogue services.
Charity and Study: Many observe Yahrzeit by giving tzedakah (charity) in the name of the deceased or by engaging in Torah study.
Visiting the Grave: Some visit the gravesite of their loved one.
The Hebrew Calendar and Yahrzeit Calculation
Unlike the Gregorian calendar, which is solar, the Hebrew calendar is lunisolar, meaning it is based on both the cycles of the moon and the sun. This difference means that the Gregorian date of a Yahrzeit changes each year, while the Hebrew date remains constant. This calculator helps bridge that gap.
A critical aspect of Yahrzeit calculation is the sunset rule. In Jewish law, a new day begins at sunset. Therefore, if a person passed away after sunset on a particular Gregorian date, the corresponding Hebrew date is considered to be that of the *next* Gregorian day. For example, if someone died on January 1st at 8 PM, the Yahrzeit would be calculated based on the Hebrew date corresponding to January 2nd.
Our Yahrzeit Calculator takes your loved one's Gregorian date of passing and determines the exact Hebrew date of death. It then provides the corresponding Gregorian dates for upcoming Yahrzeits, allowing you to plan your observances.
How to Use the Calculator:
Enter Gregorian Month, Day, and Year of Death: Provide the exact date your loved one passed away.
Check "Death occurred after sunset?" if applicable: If the passing occurred after sunset on the specified Gregorian date, check this box. This is crucial for accurate Hebrew date conversion.
Click "Calculate Yahrzeit": The calculator will display the Hebrew date of death and a list of upcoming Gregorian Yahrzeit dates.
Important Considerations:
Adar in Leap Years: The Hebrew calendar has a leap month called Adar I (Adar Rishon) and Adar II (Adar Sheni). If a death occurred in Adar during a non-leap year, the Yahrzeit in a leap year is observed in Adar I. If the death occurred in Adar II of a leap year, the Yahrzeit in a non-leap year is observed in Adar. This calculator handles these complexities.
Accuracy: While this calculator uses standard algorithms for Hebrew calendar conversion, minor variations can sometimes occur due to different interpretations or highly precise astronomical calculations. For definitive dates, especially for complex cases or specific communities, it is always advisable to consult with a local Rabbi or Jewish authority.
Time Zones: The sunset rule is dependent on the time zone of death. This calculator simplifies by asking if death occurred after sunset, placing the responsibility on the user to know this detail for the specific location and date.