Javascript, HTML, CSS Code
Copy
<html>
<head>
<script type="text/javascript"> window.addEventListener('error', function(event) { var message = JSON.parse(JSON.stringify(event.message)); var source = event.filename; var lineno = event.lineno; var colno = event.colno; var error = event.error; window.parent.postMessage({ type: 'iframeError', details: { message: message, source: source, lineno: lineno, colno: colno, error: error ? error.stack : '' } }, '*'); }); window.addEventListener('unhandledrejection', function(event) { window.parent.postMessage({ type: 'iframePromiseRejection', details: { reason: event.reason } }, '*'); }); </script>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Birth Chart 🌌</title>
<meta name="description" content="Generate your complete horoscope birth chart with planetary positions.">
<meta name="keywords" content="astrology, birth chart, horoscope, planets, zodiac">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<!-- Built-In Functions for Apps -->
<script type="text/javascript">
var localStoragePrefix = "ct-168112576352412";
var lastSave = 0;
// save to localstorage
function saveLocal(data) {
if (Date.now() - lastSave < 1000) {
return;
}
// save to cookie
let cookie = localStoragePrefix + "=" + JSON.stringify(data) + "; path=" + window.location.pathname + "'; SameSite=Strict";
cookie += "; expires=" + new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 1000).toUTCString();
document.cookie = cookie;
lastSave = Date.now();
}
// load from localstorage
function loadLocal() {
var cookiePrefix = localStoragePrefix + "=";
var cookieStart = document.cookie.indexOf(cookiePrefix);
if (cookieStart > -1) {
let cookieEnd = document.cookie.indexOf(";", cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
var cookieData = document.cookie.substring(cookieStart + cookiePrefix.length, cookieEnd);
return JSON.parse(cookieData);
}
}
</script>
<script src="https://cdn.jsdelivr.net/npm/swisseph@0.1.40/dist/swisseph.min.js"></script>
<script type="text/javascript">
const PLANETS = ['Sun ☀️', 'Moon 🌙', 'Mercury ☿️', 'Venus ♀️', 'Mars ♂️', 'Jupiter ♃', 'Saturn ♄', 'Uranus ♅', 'Neptune ♆', 'Pluto ♇'];
const SIGNS = ['Aries ♈', 'Taurus ♉', 'Gemini ♊', 'Cancer ♋', 'Leo ♌', 'Virgo ♍', 'Libra ♎', 'Scorpio ♏', 'Sagittarius ♐', 'Capricorn ♑', 'Aquarius ♒', 'Pisces ♓'];
function calculateBirthChart(date, time) {
let birthDate = new Date(date + 'T' + time + ':00');
let jd = swisseph.swe_julday(birthDate.getUTCFullYear(), birthDate.getUTCMonth() + 1, birthDate.getUTCDate(), birthDate.getUTCHours() + birthDate.getUTCMinutes() / 60);
let birthChart = [];
PLANETS.forEach((planet, index) => {
swisseph.swe_calc_ut(jd, index, swisseph.SEFLG_SPEED, function (result) {
let longitude = result.longitude % 360;
let signIndex = Math.floor(longitude / 30);
birthChart.push({
planet: planet,
sign: SIGNS[signIndex],
degrees: longitude % 30,
minutes: (longitude * 60) % 60
});
});
});
return birthChart;
}
function displayBirthChart(birthChart) {
let tableBody = $('#birth-chart tbody');
tableBody.empty();
birthChart.forEach((position) => {
let row = $('<tr>');
row.append($('<td>').text(position.planet));
row.append($('<td>').text(position.sign));
row.append($('<td>').text(position.degrees.toFixed(2) + '° ' + position.minutes.toFixed(2) + "'"));
tableBody.append(row);
});
}
$(document).ready(function () {
$('#calculate-chart').click(function () {
let date = $('#birth-date').val();
let time = $('#birth-time').val();
if (date && time) {
let birthChart = calculateBirthChart(date, time);
displayBirthChart(birthChart);
}
});
});
</script>
<style>
body {
font-family: 'Roboto', sans-serif;
background: linear-gradient(135deg, #1e5799 0%,#7db9e8 100%);
color: #ffffff;
}
#main-container {
margin-top: 50px;
}
.form-container {
display: flex;
justify-content: center;
}
table {
width: 100%;
text-align: center;
}
th, td {
padding: 10px;
}
</style>
<link rel="canonical" href="https://calculator.tools/prompt/76/">
<meta charset="utf-8">
</head>
<body>
<div id="main-container" class="container">
<h1 class="text-center mb-4">Your Birth Chart 🌌</h1>
<div class="form-container">
<div class="form-group">
<label for="birth-date">Date of Birth:</label>
<input type="date" id="birth-date" class="form-control">
</div>
<div class="form-group">
<label for="birth-time">Time of Birth:</label>
<input type="time" id="birth-time" class="form-control">
</div>
<button id="calculate-chart" class="btn btn-primary">Calculate</button>
</div>
<div class="mt-5">
<table id="birth-chart" class="table table-bordered">
<thead>
<tr>
<th>Planet</th>
<th>Sign</th>
<th>Position</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<script type="text/javascript"> var localStoragePrefix = "ct-{{ cachebreaker }}"; var lastSave = 0; function saveLocal(data) { if (Date.now() - lastSave < 1000) { return; } let cookie = localStoragePrefix + "=" + JSON.stringify(data) + "; path=" + window.location.pathname + "'; SameSite=Strict"; cookie += "; expires=" + new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 1000).toUTCString(); document.cookie = cookie; lastSave = Date.now(); } function loadLocal() { var cookiePrefix = localStoragePrefix + "="; var cookieStart = document.cookie.indexOf(cookiePrefix); if (cookieStart > -1) { let cookieEnd = document.cookie.indexOf(";", cookieStart); if (cookieEnd == -1) { cookieEnd = document.cookie.length; } var cookieData = document.cookie.substring(cookieStart + cookiePrefix.length, cookieEnd); return JSON.parse(cookieData); } } </script>
<script type="text/javascript"> window.addEventListener('load', function() { var observer = new MutationObserver(function() { window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); observer.observe(document.body, {attributes: true, childList: true, subtree: true}); window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); </script>
</body>
</html>