Skip to content

Instantly share code, notes, and snippets.

@amulyakashyap09
Created March 9, 2025 20:12
Show Gist options
  • Save amulyakashyap09/b8670b74207d937c4a875d39b19e44b7 to your computer and use it in GitHub Desktop.
Save amulyakashyap09/b8670b74207d937c4a875d39b19e44b7 to your computer and use it in GitHub Desktop.
Pataki Rishta Chakra | Astrology
/**
* fetches the second last iteration
* @customFunction
*/
function getSecondLastIteration(j8, l8, m8) {
// j8 - dinman value
// l8 - ardhyam
// m8 - ishtakaal
function toVipal(ghati, pal, vipal) {
return (ghati * 3600) + (pal * 60) + vipal;
}
function fromVipal(vipal) {
let ghati = Math.floor(vipal / 3600);
let pal = Math.floor((vipal % 3600) / 60);
let vipalR = vipal % 60;
return `${ghati}:${String(pal).padStart(2, '0')}:${String(vipalR).padStart(2, '0')}`;
}
// Parse inputs from "G:P:V" format
const [j8_gh, j8_pal, j8_vipal] = j8.split(":").map(Number);
const [l8_gh, l8_pal, l8_vipal] = l8.split(":").map(Number);
const [m8_gh, m8_pal, m8_vipal] = m8.split(":").map(Number);
// Convert to total Vipal
let J8_vipal = toVipal(j8_gh, j8_pal, j8_vipal);
let L8_vipal = toVipal(l8_gh, l8_pal, l8_vipal);
let M8_vipal = toVipal(m8_gh, m8_pal, m8_vipal);
let sum = J8_vipal;
let prevSum = sum;
// Keep adding L8 until sum exceeds M8
while (sum + L8_vipal <= M8_vipal) {
prevSum = sum;
sum += L8_vipal;
}
return fromVipal(sum);
}
function getArdhmesh(birthTime, weekday, ardhyamAtTob) {
const DAY_BIRTH = {
"sunday": ["Sun", "Venus", "Mercury", "Moon", "Saturn", "Jupiter", "Mars", "Sun"],
"monday": ["Moon", "Saturn", "Jupiter", "Mars", "Sun", "Venus", "Mercury", "Moon"],
"tuesday": ["Mars", "Sun", "Venus", "Mercury", "Moon", "Saturn", "Jupiter", "Mars"],
"wednesday": ["Mercury", "Moon", "Saturn", "Jupiter", "Mars", "Sun", "Venus", "Mercury"],
"thursday": ["Jupiter", "Mars", "Sun", "Venus", "Mercury", "Moon", "Saturn", "Jupiter"],
"friday": ["Venus", "Mercury", "Moon", "Saturn", "Jupiter", "Mars", "Sun", "Venus"],
"saturday": ["Saturn", "Jupiter", "Mars", "Sun", "Venus", "Mercury", "Moon", "Saturn"],
};
const NIGHT_BIRTH = {
"sunday": ["Sun", "Jupiter", "Moon", "Venus", "Mars", "Saturn", "Mercury", "Sun"],
"monday": ["Moon", "Venus", "Mars", "Saturn", "Mercury", "Sun", "Jupiter", "Moon"],
"tuesday": ["Mars", "Saturn", "Mercury", "Sun", "Jupiter", "Moon", "Venus", "Mars"],
"wednesday": ["Mercury", "Sun", "Jupiter", "Moon", "Venus", "Mars", "Saturn", "Mercury"],
"thursday": ["Jupiter", "Moon", "Venus", "Mars", "Saturn", "Mercury", "Sun", "Jupiter"],
"friday": ["Venus", "Mars", "Saturn", "Mercury", "Sun", "Jupiter", "Moon", "Venus"],
"saturday": ["Saturn", "Mercury", "Sun", "Jupiter", "Moon", "Venus", "Mars", "Saturn"],
};
const ardhmeshTable = {
DAY_BIRTH,
NIGHT_BIRTH,
}
return ardhmeshTable[birthTime] ? ardhmeshTable[birthTime][weekday.toLowerCase()][parseInt(ardhyamAtTob) - 1] : "null"
}
function getDandesh(
day,
birthTime,
ardhyam,
ishtakaal,
dandaman,
ardhyamAtTob
) {
function convertGhatiPalVipalToVipal(input) {
// Split input and ensure it has three parts (ghati, pal, vipal)
let parts = input.split(':');
if (parts.length === 1) {
parts = [parts[0], '00', '00']; // Add missing pal and vipal
} else if (parts.length === 2) {
parts.push('00'); // Add missing vipal
}
// Convert all parts to numbers
const [ghati, pal, vipal] = parts.map(Number);
// Convert to total Vipal
const totalVipal = ghati * 3600 + pal * 60 + vipal;
return {
standardizedFormat: `${ghati.toString().padStart(2, '0')}:${pal
.toString()
.padStart(2, '0')}:${vipal.toString().padStart(2, '0')}`,
totalVipal,
};
}
const { totalVipal: ishtakaalInVipal } =
convertGhatiPalVipalToVipal(ishtakaal);
const { totalVipal: dandamanInVipal } = convertGhatiPalVipalToVipal(dandaman);
const { totalVipal: ardhyamInVipal } = convertGhatiPalVipalToVipal(ardhyam);
function getLastArdhyamStartedAt(ardhyam, ardhyamAtTob) {
return (parseInt(ardhyamAtTob, 10) - 1) * ardhyam;
}
const lastArdhyamStartedAtInVipal = getLastArdhyamStartedAt(
ardhyamInVipal,
ardhyamAtTob
);
let sumOfLastArdhyamStartedAndDandaman = lastArdhyamStartedAtInVipal;
let dandaRunning = 0;
while (sumOfLastArdhyamStartedAndDandaman < ishtakaalInVipal) {
sumOfLastArdhyamStartedAndDandaman += dandamanInVipal;
dandaRunning += 1;
}
function reduceToFour(n) {
return ((n - 1) % 4) + 1;
}
if (dandaRunning > 4) {
dandaRunning = reduceToFour(dandaRunning);
}
// weekday >> ardhyamAtTob >> birthTime
const dandeshTable = {
SUNDAY: {
ARDHYAM_1: {
DAY_BIRTH: ['Sun', 'Rahu', 'Mercury', 'Moon'],
NIGHT_BIRTH: ['Sun', 'Venus', 'Mercury', 'Moon'],
},
ARDHYAM_2: {
DAY_BIRTH: ['Venus', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Jupiter', 'Mars', 'Sun', 'Venus'],
},
ARDHYAM_3: {
DAY_BIRTH: ['Mercury', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Moon', 'Saturn', 'Jupiter', 'Mars'],
},
ARDHYAM_4: {
DAY_BIRTH: ['Moon', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Venus', 'Mercury', 'Moon', 'Saturn'],
},
ARDHYAM_5: {
DAY_BIRTH: ['Saturn', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
ARDHYAM_6: {
DAY_BIRTH: ['Jupiter', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Saturn', 'Jupiter', 'Mars', 'Sun'],
},
ARDHYAM_7: {
DAY_BIRTH: ['Mars', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Mercury', 'Moon', 'Saturn', 'Jupiter'],
},
ARDHYAM_8: {
DAY_BIRTH: ['Sun', 'Rahu', 'Mercury', 'Moon'],
NIGHT_BIRTH: ['Sun', 'Venus', 'Mercury', 'Moon'],
},
},
MONDAY: {
ARDHYAM_1: {
DAY_BIRTH: ['Moon', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Moon', 'Saturn', 'Jupiter', 'Mars'],
},
ARDHYAM_2: {
DAY_BIRTH: ['Saturn', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
ARDHYAM_3: {
DAY_BIRTH: ['Jupiter', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
ARDHYAM_4: {
DAY_BIRTH: ['Mars', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Saturn', 'Jupiter', 'Mars', 'Sun'],
},
ARDHYAM_5: {
DAY_BIRTH: ['Sun', 'Rahu', 'Mercury', 'Moon'],
NIGHT_BIRTH: ['Mercury', 'Moon', 'Saturn', 'Jupiter'],
},
ARDHYAM_6: {
DAY_BIRTH: ['Venus', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Sun', 'Venus', 'Mercury', 'Moon'],
},
ARDHYAM_7: {
DAY_BIRTH: ['Mercury', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Jupiter', 'Mars', 'Sun', 'Venus'],
},
ARDHYAM_8: {
DAY_BIRTH: ['Moon', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Moon', 'Saturn', 'Jupiter', 'Mars'],
},
},
TUESDAY: {
ARDHYAM_1: {
DAY_BIRTH: ['Mars', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
ARDHYAM_2: {
DAY_BIRTH: ['Sun', 'Rahu', 'Mercury', 'Moon'],
NIGHT_BIRTH: ['Saturn', 'Jupiter', 'Mars', 'Sun'],
},
ARDHYAM_3: {
DAY_BIRTH: ['Venus', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mercury', 'Moon', 'Saturn', 'Jupiter'],
},
ARDHYAM_4: {
DAY_BIRTH: ['Mercury', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Sun', 'Venus', 'Mercury', 'Moon'],
},
ARDHYAM_5: {
DAY_BIRTH: ['Moon', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Jupiter', 'Mars', 'Sun', 'Venus'],
},
ARDHYAM_6: {
DAY_BIRTH: ['Saturn', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Moon', 'Saturn', 'Jupiter', 'Mars'],
},
ARDHYAM_7: {
DAY_BIRTH: ['Jupiter', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Venus', 'Mercury', 'Moon', 'Saturn'],
},
ARDHYAM_8: {
DAY_BIRTH: ['Mars', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
},
WEDNESDAY: {
ARDHYAM_1: {
DAY_BIRTH: ['Mercury', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mercury', 'Moon', 'Saturn', 'Jupiter'],
},
ARDHYAM_2: {
DAY_BIRTH: ['Moon', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Sun', 'Venus', 'Mercury', 'Moon'],
},
ARDHYAM_3: {
DAY_BIRTH: ['Saturn', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Jupiter', 'Mars', 'Sun', 'Venus'],
},
ARDHYAM_4: {
DAY_BIRTH: ['Jupiter', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Moon', 'Saturn', 'Jupiter', 'Mars'],
},
ARDHYAM_5: {
DAY_BIRTH: ['Mars', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Venus', 'Mercury', 'Moon', 'Saturn'],
},
ARDHYAM_6: {
DAY_BIRTH: ['Sun', 'Rahu', 'Mercury', 'Moon'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
ARDHYAM_7: {
DAY_BIRTH: ['Venus', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Saturn', 'Jupiter', 'Mars', 'Sun'],
},
ARDHYAM_8: {
DAY_BIRTH: ['Mercury', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mercury', 'Moon', 'Saturn', 'Jupiter'],
},
},
THURSDAY: {
ARDHYAM_1: {
DAY_BIRTH: ['Jupiter', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Jupiter', 'Mars', 'Sun', 'Venus'],
},
ARDHYAM_2: {
DAY_BIRTH: ['Mars', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Moon', 'Saturn', 'Jupiter', 'Mars'],
},
ARDHYAM_3: {
DAY_BIRTH: ['Sun', 'Rahu', 'Mercury', 'Moon'],
NIGHT_BIRTH: ['Venus', 'Mercury', 'Moon', 'Saturn'],
},
ARDHYAM_4: {
DAY_BIRTH: ['Venus', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
ARDHYAM_5: {
DAY_BIRTH: ['Mercury', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Saturn', 'Jupiter', 'Mars', 'Sun'],
},
ARDHYAM_6: {
DAY_BIRTH: ['Moon', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Mercury', 'Moon', 'Saturn', 'Jupiter'],
},
ARDHYAM_7: {
DAY_BIRTH: ['Saturn', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Sun', 'Venus', 'Mercury', 'Moon'],
},
ARDHYAM_8: {
DAY_BIRTH: ['Jupiter', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Jupiter', 'Mars', 'Sun', 'Venus'],
},
},
FRIDAY: {
ARDHYAM_1: {
DAY_BIRTH: ['Venus', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Venus', 'Mercury', 'Moon', 'Saturn'],
},
ARDHYAM_2: {
DAY_BIRTH: ['Mercury', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
ARDHYAM_3: {
DAY_BIRTH: ['Moon', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Saturn', 'Jupiter', 'Mars', 'Sun'],
},
ARDHYAM_4: {
DAY_BIRTH: ['Saturn', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mercury', 'Moon', 'Saturn', 'Jupiter'],
},
ARDHYAM_5: {
DAY_BIRTH: ['Jupiter', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Sun', 'Venus', 'Mercury', 'Moon'],
},
ARDHYAM_6: {
DAY_BIRTH: ['Mars', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Jupiter', 'Mars', 'Sun', 'Venus'],
},
ARDHYAM_7: {
DAY_BIRTH: ['Sun', 'Rahu', 'Mercury', 'Moon'],
NIGHT_BIRTH: ['Moon', 'Saturn', 'Jupiter', 'Mars'],
},
ARDHYAM_8: {
DAY_BIRTH: ['Venus', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Venus', 'Mercury', 'Moon', 'Saturn'],
},
},
SATURDAY: {
ARDHYAM_1: {
DAY_BIRTH: ['Saturn', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Saturn', 'Jupiter', 'Mars', 'Sun'],
},
ARDHYAM_2: {
DAY_BIRTH: ['Jupiter', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Mercury', 'Moon', 'Saturn', 'Jupiter'],
},
ARDHYAM_3: {
DAY_BIRTH: ['Mars', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Sun', 'Venus', 'Mercury', 'Moon'],
},
ARDHYAM_4: {
DAY_BIRTH: ['Sun', 'Rahu', 'Mercury', 'Moon'],
NIGHT_BIRTH: ['Jupiter', 'Mars', 'Sun', 'Venus'],
},
ARDHYAM_5: {
DAY_BIRTH: ['Venus', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Moon', 'Saturn', 'Jupiter', 'Mars'],
},
ARDHYAM_6: {
DAY_BIRTH: ['Mercury', 'Moon', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Venus', 'Mercury', 'Moon', 'Saturn'],
},
ARDHYAM_7: {
DAY_BIRTH: ['Moon', 'Sun', 'Rahu', 'Mercury'],
NIGHT_BIRTH: ['Mars', 'Sun', 'Venus', 'Mercury'],
},
ARDHYAM_8: {
DAY_BIRTH: ['Saturn', 'Mars', 'Sun', 'Rahu'],
NIGHT_BIRTH: ['Saturn', 'Jupiter', 'Mars', 'Sun'],
},
},
};
return dandeshTable[day.toUpperCase()]['ARDHYAM_' + ardhyamAtTob.toString()][
birthTime.toUpperCase()
][dandaRunning - 1];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment