今SNSで話題の診断
いまバズっている診断をまとめてチェック!
#wt82b0f9{–ink:#211c2b;–soft:#675f70;–gold:#b38b46;–gold2:#ead099;–violet:#6a548e;–rose:#9a586f;–line:#ddd2c4;–night:#171426;color:var(–ink);background:linear-gradient(180deg,#fffefa,#fbf7f1 60%,#f7f0e8);font-family:”Noto Serif JP”,”Yu Mincho”,serif;line-height:1.9}#wt82b0f9,#wt82b0f9 *{box-sizing:border-box}#wt82b0f9 .wt82b0f9-wrap{width:min(920px,calc(100% – 34px));margin:0 auto}#wt82b0f9 .wt82b0f9-top{padding:46px 18px 35px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(106,84,142,.10),transparent 37%)}#wt82b0f9 .wt82b0f9-kick{color:var(–gold);font:700 9px/1.4 -apple-system,BlinkMacSystemFont,”Yu Gothic”,sans-serif;letter-spacing:.18em}#wt82b0f9 .wt82b0f9-name{margin-top:8px;font-size:clamp(31px,5vw,44px);font-weight:700}#wt82b0f9 .wt82b0f9-lead{max-width:750px;margin:12px auto 0;color:var(–soft);font-size:13px}#wt82b0f9 .wt82b0f9-formarea{padding:10px 0 55px}#wt82b0f9 .wt82b0f9-form{padding:28px;border:1px solid rgba(179,139,70,.48);background:#fff;box-shadow:0 16px 45px rgba(31,24,45,.07)}#wt82b0f9 .wt82b0f9-group{margin-bottom:18px}#wt82b0f9 .wt82b0f9-label{display:block;margin-bottom:7px;font:700 11px/1.4 -apple-system,BlinkMacSystemFont,”Yu Gothic”,sans-serif}#wt82b0f9 select,#wt82b0f9 input{width:100%;min-height:46px;padding:9px 10px;border:1px solid var(–line);background:#fcf9f4;font:12px/1.4 -apple-system,BlinkMacSystemFont,”Yu Gothic”,sans-serif}#wt82b0f9 .wt82b0f9-date{display:grid;grid-template-columns:1fr .7fr .7fr;gap:7px}#wt82b0f9 .wt82b0f9-time{display:grid;grid-template-columns:1fr 1fr;gap:7px}#wt82b0f9 .wt82b0f9-help{margin:6px 0 0;color:#817988;font:9.5px/1.6 -apple-system,BlinkMacSystemFont,”Yu Gothic”,sans-serif}#wt82b0f9 .wt82b0f9-submit{width:100%;min-height:60px;border:0;background:linear-gradient(135deg,#171426,#302849);color:var(–gold2);font-size:16px;font-weight:700;cursor:pointer}#wt82b0f9 .wt82b0f9-error{display:none;margin:10px 0;padding:10px;border-left:3px solid var(–rose);background:#fff1f4;color:#744958;font-size:11px}#wt82b0f9 .wt82b0f9-error.show{display:block}
#wt82b0f9 .wt82b0f9-resultscreen{display:none;scroll-margin-top:110px}#wt82b0f9 .wt82b0f9-loading{min-height:62vh;display:flex;align-items:center;justify-content:center;text-align:center}#wt82b0f9 .wt82b0f9-loader{width:72px;height:72px;margin:0 auto 15px;border:1px solid var(–gold);border-radius:50%;display:grid;place-items:center;color:var(–gold);font-size:30px;animation:wt82b0f9spin 4s linear infinite}@keyframes wt82b0f9spin{to{transform:rotate(360deg)}}#wt82b0f9 .wt82b0f9-resulthead{padding:38px 18px 30px;text-align:center;background:linear-gradient(145deg,#171426,#302849);color:#fff}#wt82b0f9 .wt82b0f9-resulttitle{font-size:clamp(26px,5vw,34px);font-weight:700;color:#fff!important}#wt82b0f9 .wt82b0f9-resultbody{padding:28px 0 68px}#wt82b0f9 .wt82b0f9-card{margin:0 0 16px;padding:21px;border:1px solid var(–line);background:#fff}#wt82b0f9 .wt82b0f9-cardtitle{font-size:18px;font-weight:700;margin-bottom:11px}#wt82b0f9 .wt82b0f9-easy{padding:14px;border-left:3px solid var(–gold);background:#f7efe4}#wt82b0f9 .wt82b0f9-easy small{display:block;color:var(–gold);font:700 9px/1.4 -apple-system,BlinkMacSystemFont,”Yu Gothic”,sans-serif}#wt82b0f9 .wt82b0f9-easy strong{display:block;margin-top:3px;font-size:16px}#wt82b0f9 .wt82b0f9-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}#wt82b0f9 .wt82b0f9-mini{padding:12px;border:1px solid var(–line);background:#fcfaf6}#wt82b0f9 .wt82b0f9-mini b{display:block;font-size:11px}#wt82b0f9 .wt82b0f9-mini span{display:block;margin-top:2px;color:var(–soft);font:10px/1.55 -apple-system,BlinkMacSystemFont,”Yu Gothic”,sans-serif}#wt82b0f9 .wt82b0f9-deep{margin-top:14px;padding:13px;border-left:3px solid var(–violet);background:#f5f1f9;font-size:12px}#wt82b0f9 .wt82b0f9-term{color:var(–violet)!important;text-decoration:underline!important;text-underline-offset:2px!important}#wt82b0f9 .wt82b0f9-cta{margin-top:18px;padding:23px;border:1px solid rgba(179,139,70,.52);background:linear-gradient(180deg,#fffdf8,#f5ede0)}#wt82b0f9 .wt82b0f9-cta a{display:block;max-width:610px;margin:15px auto 0;padding:14px;text-align:center;background:linear-gradient(135deg,#594875,#312a49);color:#fff!important;text-decoration:none!important;font-weight:700}#wt82b0f9 .wt82b0f9-pr{text-align:center;color:#8c8490;font-size:8.5px}#wt82b0f9 .wt82b0f9-back{display:block;margin:18px auto 0;padding:9px 14px;border:1px solid var(–line);background:#fff;color:var(–violet);cursor:pointer}#wt82b0f9 .wt82b0f9-article{padding:42px 0 70px}#wt82b0f9 .wt82b0f9-sec{margin-bottom:46px}#wt82b0f9 .wt82b0f9-h2{position:relative!important;margin:0 0 17px!important;padding:0 0 10px!important;border:0!important;border-bottom:1px solid #c7baa8!important;background:transparent!important;color:var(–ink)!important;box-shadow:none!important;font-size:clamp(21px,4vw,26px)!important}#wt82b0f9 .wt82b0f9-h2::before{display:none!important}#wt82b0f9 .wt82b0f9-h2::after{content:””!important;display:block!important;position:absolute!important;left:0!important;bottom:-1px!important;width:60px!important;height:2px!important;background:var(–gold)!important}#wt82b0f9 .wt82b0f9-sec p{font-size:13.2px}#wt82b0f9 .wt82b0f9-faq details{border-bottom:1px solid var(–line)}#wt82b0f9 .wt82b0f9-faq summary{padding:13px 2px;font-weight:700;font-size:12.5px}#wt82b0f9 .wt82b0f9-ans{padding:0 2px 14px;color:#57505e;font-size:12px}
@media(max-width:720px){#wt82b0f9 .wt82b0f9-date,#wt82b0f9 .wt82b0f9-time,#wt82b0f9 .wt82b0f9-grid{grid-template-columns:1fr}}
WESTERN ASTROLOGY FREE READING
今週の運勢
今後7日間の波と動きやすい日を知りたい。無料・登録なしで、日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価を使ってテーマに必要な配置だけを優先して読みます。
今週の運勢を西洋占星術でどう鑑定する? ARTICLE FOCUS: 今後7日間の波と動きやすい日を知りたい
今週の運勢では「日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価」を使います。必要な入力は「生年月日、任意で出生時間・出生地」。出生図の全要素を均等に足すのではなく、今週の運勢という質問へ直接関係する天体・期間・相互角へ優先順位を付けます。
入力 生年月日、任意で出生時間・出生地
鑑定ロジック 日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価
実際に使う場面 今週の予定調整
7日間では「ピーク日」と「回復日」を分ける 一週間の中では月が複数のサインを移動するため、同じ出生図でも日ごとに感情の焦点が変わります。今週全体の平均だけでなく、どの日に角度がタイトになるかを見ることで、予定を詰める日と余白を作る日を分けられます。
水星・金星・火星は月ほど速くありませんが、会話・対人・行動の流れを一週間単位で読む時の重要な背景になります。重要な交渉、デート、作業の締切を全部「一番点数の高い日」へ集めるのではなく、それぞれの目的に合う天体の状態を確認します。
今週の結果は7日後にリセットされる予言ではありません。土星や木星の長期テーマが続いている場合、一週間はその長い流れの一部分です。週運は「今週の使い方」、年運は「長い課題」と役割を分けます。
結果で何を見る?今週の運勢の項目を分解 7日間の総合・恋愛・仕事・金運・強い日・休む日を一つの総合点へ潰さず、読者が次に決めたいことへ分けて表示します。たとえば同じ「追い風」でも、恋愛・会話・実行・長期責任では意味が違います。初心者向け結論の後にDEEP READINGを置き、なぜその結果になったかを追えるようにします。
7日間の総合 今週の運勢では「7日間の総合」を他の結果項目と分け、単独の吉凶判定にしません。
恋愛 今週の運勢では「恋愛」を他の結果項目と分け、単独の吉凶判定にしません。
仕事 今週の運勢では「仕事」を他の結果項目と分け、単独の吉凶判定にしません。
金運 今週の運勢では「金運」を他の結果項目と分け、単独の吉凶判定にしません。
強い日 今週の運勢では「強い日」を他の結果項目と分け、単独の吉凶判定にしません。
休む日 今週の運勢では「休む日」を他の結果項目と分け、単独の吉凶判定にしません。
結果の高低は出来事の成功率ではありません。今週の運勢に必要な占星術的象徴のまとまりを比較するための目安です。現実の条件が変われば、同じ象徴でも選ぶ行動は変わります。
今週の運勢を現実で使う4つの確認 今週の運勢の確認1 7日間のうち締切や約束がある日を先に固定する
今週の運勢の確認2 月の変化が強い日と水星・金星・火星の流れを分ける
今週の運勢の確認3 ピーク日に予定を詰め込みすぎず目的ごとに選ぶ
今週の運勢の確認4 翌週へ続く長期テーマは年運・月運と照合する
この手順の目的は「良い日なら何でも成功する」「慎重なら何もしない」という読みを避けることです。今週の予定調整という場面で、自分が変更できる条件と変更できない条件を分けてから星の象徴を重ねます。
似た西洋占星術の占いとの違い INTENT DIFFERENCE: 今日だけの瞬間値ではなく7日間の波を比較する。今月占いより細かく、予定を置く日を選びやすい時間幅に限定する。
同じ天体名が別の記事にも出るのは、出生図の心理機能が複数の悩みに関わるためです。しかし質問が変われば、期間・相手情報・重み付け・結果項目を変えます。今週の運勢の結果を別テーマの答えとして使い回さず、「今後7日間の波と動きやすい日を知りたい」という問いに限定して読みます。
DEEP READING|今週の運勢で使う専門理論 日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価。ここで使う主要概念は専門理論1 と専門理論2 です。角度の種類だけで吉凶を付けず、対象天体・オーブ・期間を質問に合わせて読み分けます。
出生時間が必要な情報は、時刻が不明なら推測しません。相手情報が任意のテーマでは、相手の生年月日がない場合に二人の心理を断定せず、本人の出生図と現在天体から分かる範囲へ限定します。これにより、入力していない情報を確定結果のように見せることを避けます。 西洋占星術の今週の運勢では「今後7日間の波と動きやすい日を知りたい」という判断場面に限定して使います。
どの日に動くかを現実の予定と照合したいという段階まで具体化したい場合は、無料結果の項目を土台にしながら、実際の経緯・予定・関係状況を追加して優先順位を整理する必要があります。無料結果を否定するのではなく、出生図の象徴を現実へ翻訳する段階が個別相談です。
今週の運勢で誤読しやすいポイント 第一に、象徴スコアを確率へ読み替えないこと。第二に、今日だけの瞬間値ではなく7日間の波を比較する。今月占いより細かく、予定を置く日を選びやすい時間幅に限定する。 第三に、現実の相手・職場・金銭・健康・法律など、出生図だけでは分からない情報を占星術で埋めないことです。
今週の運勢は判断を代行するものではなく、「何を恐れているか」「どの機能が今強く刺激されるか」「準備と実行のどちらを優先するか」を整理するために使います。
今週の運勢についてよくある質問 今週の運勢の結果は未来の確率ですか? 確率ではありません。日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価によって、今後7日間の波と動きやすい日を知りたいという問いに関係する象徴を整理した結果です。
今週の運勢で一番重視する現実情報は? 今週の予定調整の場面では、相手の意思・予定・健康・契約・資金など実際に確認できる条件を先に置き、出生図の結果を補助線として使います。
兄弟占いと同じ結果になることはありますか? 同じ出生図を使うため共通テーマが出ることはありますが、今日だけの瞬間値ではなく7日間の波を比較する。今月占いより細かく、予定を置く日を選びやすい時間幅に限定する。 したがって重み付けと結果の使い方は同じではありません。
PRACTICAL GUIDE|今週の運勢を現実の判断へ落とす4手順 今週の運勢の結果を役立てるには、スコアを眺めるだけでなく、現実で次に何を確認するかへ翻訳します。このページの検索意図は「今後7日間の波と動きやすい日を知りたい」であり、最終的な行動は今週の予定調整という具体場面へ戻して判断します。
実践1 7日間のうち締切や約束がある日を先に固定する
実践2 月の変化が強い日と水星・金星・火星の流れを分ける
実践3 ピーク日に予定を詰め込みすぎず目的ごとに選ぶ
実践4 翌週へ続く長期テーマは年運・月運と照合する
この4手順を使うと、「良い結果だから実行」「悪い結果だから中止」という二択を避けられます。生年月日、任意で出生時間・出生地という入力範囲で分かることと、本人・相手・職場・市場など現実からしか分からないことを分けるのが重要です。 西洋占星術の今週の運勢では「今後7日間の波と動きやすい日を知りたい」という判断場面に限定して使います。
DEEP READINGでは「日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価」というロジックを確認できます。似た兄弟占いでも期間と質問が変われば優先天体を変えるため、このページの結果は今週の運勢の判断に限定して使います。
CASEBOOK|今週の運勢の結果を現実で使う具体例 短期運では、長期予言より「今日・今週に何を調整できるか」が実用上の中心です。 今週の運勢では、結果を見た直後に行動を決めるのではなく、質問を「今後7日間の波と動きやすい日を知りたい」へ戻し、どの情報が占星術から分かり、どの情報は現実からしか分からないかを分けます。
最初の確認では|7日間のうち締切や約束がある日を先に固定する 今週の運勢では「今後7日間の波と動きやすい日を知りたい」が中心です。この確認を入れることで、日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価から得た象徴を出来事の成功率へ読み替えず、今週の予定調整という現実の場面で次に確認する条件へ変換できます。とくに結果が極端に高い/低い時ほど、一つの数値ではなく「7日間の総合・恋愛・仕事・金運・強い日・休む日」のどの項目が理由になっているかを見直します。
次の段階では|月の変化が強い日と水星・金星・火星の流れを分ける 今週の運勢では「今後7日間の波と動きやすい日を知りたい」が中心です。この確認を入れることで、日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価から得た象徴を出来事の成功率へ読み替えず、今週の予定調整という現実の場面で次に確認する条件へ変換できます。とくに結果が極端に高い/低い時ほど、一つの数値ではなく「7日間の総合・恋愛・仕事・金運・強い日・休む日」のどの項目が理由になっているかを見直します。
結果を使う直前には|ピーク日に予定を詰め込みすぎず目的ごとに選ぶ 今週の運勢では「今後7日間の波と動きやすい日を知りたい」が中心です。この確認を入れることで、日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価から得た象徴を出来事の成功率へ読み替えず、今週の予定調整という現実の場面で次に確認する条件へ変換できます。とくに結果が極端に高い/低い時ほど、一つの数値ではなく「7日間の総合・恋愛・仕事・金運・強い日・休む日」のどの項目が理由になっているかを見直します。
最後の振り返りでは|翌週へ続く長期テーマは年運・月運と照合する 今週の運勢では「今後7日間の波と動きやすい日を知りたい」が中心です。この確認を入れることで、日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価から得た象徴を出来事の成功率へ読み替えず、今週の予定調整という現実の場面で次に確認する条件へ変換できます。とくに結果が極端に高い/低い時ほど、一つの数値ではなく「7日間の総合・恋愛・仕事・金運・強い日・休む日」のどの項目が理由になっているかを見直します。
現実の予定・体調・相手の都合が変われば、同じ天体配置でも選択は変わります。 たとえば結果が良好でも、相手の都合・契約条件・体調・資金などに問題があれば、その条件を優先します。逆に慎重表示でも「全面中止」とはせず、確認・準備・伝え方の修正へ使える場合があります。 西洋占星術の今週の運勢では「今後7日間の波と動きやすい日を知りたい」という判断場面に限定して使います。
月など速い天体の刺激を、数か月続く土星・外惑星の背景と混同しないことが重要です。 これが、今週の運勢を単なる吉凶占いではなく、意思決定の補助線として使うための境界です。
今週の運勢で「分かること」と「分からないこと」 分かること: 日本時間の今日から7日間、月・水星・金星・火星のトランジットを日別評価から、7日間の総合・恋愛・仕事・金運・強い日・休む日に関係する象徴の強弱や噛み合わせを整理できます。入力は「生年月日、任意で出生時間・出生地」の範囲なので、この入力から計算できる情報だけを結果へ使います。
分からないこと: 他人の本心、出来事の成功確率、具体的な金額、病気や法律上の結論など、出生図から確認できない事実は確定できません。今週の運勢の結果が強くても、現実の情報を置き換えるものではありません。
使い方: 今週の予定調整の場面で「何を先に確認するか」「どこに準備を増やすか」「どの心理機能が刺激されているか」を整理するために使います。結果と現実が食い違う場合は現実を優先し、その差自体を次の判断材料にします。
(function(){“use strict”;const P=”wt82b0f9″,$=id=>document.getElementById(id);
const SIG=[“牡羊座”,”牡牛座”,”双子座”,”蟹座”,”獅子座”,”乙女座”,”天秤座”,”蠍座”,”射手座”,”山羊座”,”水瓶座”,”魚座”],SYM=[“♈”,”♉”,”♊”,”♋”,”♌”,”♍”,”♎”,”♏”,”♐”,”♑”,”♒”,”♓”],BOD=[“Sun”,”Moon”,”Mercury”,”Venus”,”Mars”,”Jupiter”,”Saturn”,”Uranus”,”Neptune”,”Pluto”],JP={Sun:”太陽”,Moon:”月”,Mercury:”水星”,Venus:”金星”,Mars:”火星”,Jupiter:”木星”,Saturn:”土星”,Uranus:”天王星”,Neptune:”海王星”,Pluto:”冥王星”};
function N(x){x%=360;return x180?360-d:d} function sign(x){let i=Math.floor(N(x)/30);return {name:SIG[i],sym:SYM[i],i,deg:N(x)%30}} function valid(y,m,d){let t=new Date(Date.UTC(y,m-1,d));return t.getUTCFullYear()===y&&t.getUTCMonth()===m-1&&t.getUTCDate()===d} function jstDate(y,m,d,h=12,mi=0){return new Date(Date.UTC(y,m-1,d,h-9,mi))} function jstNow(){let n=new Date();return new Date(n.getTime()+9*3600000)} function jstParts(n=new Date()){let z=new Date(n.getTime()+9*3600000);return {y:z.getUTCFullYear(),m:z.getUTCMonth()+1,d:z.getUTCDate()}} function addJstDays(date,n){return new Date(date.getTime()+n*86400000)}
function load(src,test){if(test())return Promise.resolve();return new Promise((res,rej)=>{let s=document.createElement(“script”),tm=setTimeout(()=>rej(new Error(“外部計算機能の読込がタイムアウトしました”)),9000);s.src=src;s.async=true;s.onload=()=>{clearTimeout(tm);test()?res():rej(new Error(“天体計算機能を確認できません”))};s.onerror=()=>{clearTimeout(tm);rej(new Error(“天体計算機能を読めません”))};document.head.appendChild(s)})} async function astro(){if(window.Astronomy)return;try{await load(“https://cdn.jsdelivr.net/npm/astronomy-engine@2.1.19/astronomy.browser.min.js”,()=>!!window.Astronomy)}catch(e){await load(“https://unpkg.com/astronomy-engine@2.1.19/astronomy.browser.min.js”,()=>!!window.Astronomy)}} async function geo(){if(typeof window.getLatLng===’function’)return;await load(“https://cdn.geolonia.com/community-geocoder.js”,()=>typeof window.getLatLng===’function’)} function geocode(a){return new Promise((res,rej)=>window.getLatLng(a,res,rej))}
function lon(body,date){let v=Astronomy.GeoVector(Astronomy.Body[body],date,true);return N(Astronomy.Ecliptic(v).elon)} function positions(date){let o={};BOD.forEach(b=>o[b]=lon(b,date));return o} function aspectScore(a,b){let d=diff(a,b),targets=[[0,3],[60,2],[90,-2],[120,3],[180,-2]],best={s:0,o:99,name:”主要角なし”};targets.forEach(t=>{let o=Math.abs(d-t[0]);if(o<7&&o{let a=aspectScore(current[c],natal[n]);total+=a.s*w;items.push(JP[c]+”→出生”+JP[n]+” “+a.name)});return {score:Math.max(0,Math.min(100,Math.round(55+total*4))),items}}
function simpleSummary(score){return score>=72?”追い風を使いやすい配置です。勢いだけでなく、何へ使うかを一つ決めると結果へつながりやすくなります。”:score>=55?”大きく偏らない流れです。無理に動くより、準備と小さな選択を積み重ねると星の象徴を使いやすくなります。”:”調整を優先したい配置です。止まることを失敗と考えず、条件を整える時間として使うと次の動きが明確になります。”}
function render(title,score,cards,deep,meta){let cardHtml=cards.map(c=>`
${c[0]} ${c[1]}
`).join(“”);$(P+’-root’).innerHTML=`
まず結論|初心者向け ${simpleSummary(score)}
${cardHtml}
DEEP READING|専門的に見ると ${deep}
入力画面に戻る `;let seiyoDynamicLinks=$(P+’-root’).querySelectorAll(‘[data-seiyo-detail-href]’);for(let seiyoDi=0;seiyoDi
✦
ホロスコープを計算しています 出生天体とこのテーマに必要な配置を確認しています。
`;scrollResult()}
async function readBirth(suf=”){let y=+$(P+’-y’+suf).value,m=+$(P+’-m’+suf).value,d=+$(P+’-d’+suf).value;if(!y||!m||!d||!valid(y,m,d))throw new Error(‘生年月日を正しく選択してください。’);let hh=12,mm=0,timeUnknown=true;if(suf===’a’&&$(P+’-hour’)){let hv=$(P+’-hour’).value;if(hv!==”){hh=+hv;mm=+($(P+’-minute’).value||0);timeUnknown=false}}return {y,m,d,date:jstDate(y,m,d,hh,mm),timeUnknown}}
function optionalPartner(){let y=$(P+’-yb’),m=$(P+’-mb’),d=$(P+’-db’);if(!y||!m||!d)return null;let vals=[y.value,m.value,d.value];if(vals.every(v=>v===”))return null;if(vals.some(v=>v===”))throw new Error(‘お相手の生年月日は、入力する場合は年・月・日をすべて選択してください。’);let yy=+y.value,mm=+m.value,dd=+d.value;if(!valid(yy,mm,dd))throw new Error(‘お相手の生年月日を正しく選択してください。’);return {y:yy,m:mm,d:dd,date:jstDate(yy,mm,dd,12,0)}}
function calcAngles(date,lat,glon){let eps=23.4392911*Math.PI/180,J=date.getTime()/86400000+2440587.5,T=(J-2451545)/36525,gm=N(280.46061837+360.98564736629*(J-2451545)+.000387933*T*T),theta=N(gm+glon)*Math.PI/180,phi=lat*Math.PI/180,asc=N(Math.atan2(-Math.cos(theta),Math.sin(theta)*Math.cos(eps)+Math.tan(phi)*Math.sin(eps))*180/Math.PI+180),mc=N(Math.atan2(Math.sin(theta),Math.cos(theta)*Math.cos(eps))*180/Math.PI);return {asc,mc}}
async function optionalAngles(a){let hr=$(P+’-hour’),pl=$(P+’-place’);if(!hr||!pl||hr.value===”||!pl.value.trim())return null;await geo();let gp=await geocode(pl.value.trim());return calcAngles(a.date,Number(gp.lat),Number(gp.lng))}
function periodDates(mode){let p=jstParts(),base=jstDate(p.y,p.m,p.d,12,0),arr=[];if(mode===’today’)arr=[base];if(mode===’week’)arr=Array.from({length:7},(_,i)=>addJstDays(base,i));if(mode===’month’){let last=new Date(Date.UTC(p.y,p.m,0,3)).getUTCDate();arr=[jstDate(p.y,p.m,1,12),jstDate(p.y,p.m,10,12),jstDate(p.y,p.m,20,12),jstDate(p.y,p.m,last,12)]}if(mode===’three_months’)arr=[30,60,90].map(n=>addJstDays(base,n));if(mode===’year’)arr=[1,4,7,10].map(m=>jstDate(2026,m,15,12));if(mode===’next_year’)arr=[1,4,7,10].map(m=>jstDate(2027,m,15,12));return arr}
async function evaluate(){await astro();let a=await readBirth(‘a’);let natal=positions(a.date),mode=’week’;
if([‘today’,’week’,’month’,’three_months’,’year’,’next_year’].includes(mode)){let ds=periodDates(mode),pairs=(mode===’today’||mode===’week’||mode===’month’||mode===’three_months’)?[[“Moon”,”Moon”,1],[“Mercury”,”Mercury”,.7],[“Venus”,”Venus”,.8],[“Mars”,”Mars”,.8],[“Jupiter”,”Sun”,.6]]:[[“Jupiter”,”Sun”,1],[“Jupiter”,”Venus”,.7],[“Saturn”,”Sun”,1],[“Saturn”,”Moon”,.7],[“Uranus”,”Sun”,.6],[“Neptune”,”Sun”,.5],[“Pluto”,”Sun”,.5]];let scores=ds.map(dt=>aggregate(natal,positions(dt),pairs));let avg=Math.round(scores.reduce((s,x)=>s+x.score,0)/scores.length);let cards=scores.map((x,i)=>[‘ポイント’+(i+1),x.score+’点|’+simpleSummary(x.score).slice(0,34)]);let deep=`