@alliumlabs/panchanga-ts
Version:
A TypeScript library for Hindu calendar (Panchanga) calculations including tithis, nakshatras, and other astronomical elements
20 lines (18 loc) • 733 B
text/typescript
import { AstroTime, Observer, Body } from "astronomy-engine";
import { KaranaResult } from "../models/types";
import { tropicalLongitude, mod360 } from "../utils/helpers";
export function computeKarana(
sunriseTime: AstroTime,
observer: Observer
): KaranaResult {
const sunTrop = tropicalLongitude(Body.Sun, sunriseTime, observer);
const moonTrop = tropicalLongitude(Body.Moon, sunriseTime, observer);
const phase = mod360(moonTrop - sunTrop);
let karanaIndex = Math.ceil(phase / 6);
if (karanaIndex === 0) karanaIndex = 60;
return {
index: karanaIndex,
description:
"Karaṇa, being half of a Tithi (6° of separation), further refines the day's time segments for precise ritual observances.",
};
}