AbdulElahGwaith's picture
Upload folder using huggingface_hub
cf86710 verified
import {
getMonthCode,
isHebrewLeapYear,
monthsInHebrewYear,
} from "../utils/calendarMath.js";
import { toGregorianDate, toHebrewDate } from "../utils/dateConversion.js";
import { clampHebrewDay } from "../utils/serial.js";
import { findMonthIndexByCode } from "./findMonthIndexByCode.js";
export function setYear(date: Date, year: number): Date {
const hebrew = toHebrewDate(date);
const targetYear = year;
const originalCode = getMonthCode(hebrew.year, hebrew.monthIndex);
let targetMonthIndex = findMonthIndexByCode(targetYear, originalCode);
if (targetMonthIndex === -1) {
if (originalCode === "adarI") {
targetMonthIndex = findMonthIndexByCode(targetYear, "adar");
} else if (originalCode === "adar" && !isHebrewLeapYear(targetYear)) {
targetMonthIndex = findMonthIndexByCode(targetYear, "adar");
} else {
const monthsCount = monthsInHebrewYear(targetYear);
targetMonthIndex = Math.min(hebrew.monthIndex, monthsCount - 1);
}
}
const day = clampHebrewDay(targetYear, targetMonthIndex, hebrew.day);
return toGregorianDate({
year: targetYear,
monthIndex: targetMonthIndex,
day,
});
}