Skip to content

Instantly share code, notes, and snippets.

@KenjiOhtsuka
Created October 28, 2013 01:28
Show Gist options
  • Save KenjiOhtsuka/7190055 to your computer and use it in GitHub Desktop.
Save KenjiOhtsuka/7190055 to your computer and use it in GitHub Desktop.
数秘術に基づくあの年の運勢
ブログにあったものをこっちにコピーした。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>あの年の運勢診断</title>
<style>
.number {
text-align: right;
}
</style>
<script>
var CommonMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
function isLeapYear(year) {
return (year % 4 == 0) && (!(year % 100 == 0) || year % 400 == 0);
}
function resolve() {
var doc = document;
var year = doc.getElementById('year').value;
var month = doc.getElementById('month').value;
var day = doc.getElementById('day').value;
if (hasError(year, month, day)) {
return;
}
var targetNumber =
parseInt(year) * 10000 + parseInt(month) * 100 + parseInt(day);
while (targetNumber >= 10) {
targetNumber = calcNumber(targetNumber);
}
var messages = getMessage(year, targetNumber);
doc.getElementById('result').innerHTML = messages[0]
doc.getElementById('tweet').innerHTML = '<a href="https://twitter.com/intent/tweet?text=' + encodeURIComponent(messages[1]) + '&via=escamilloIII&url=http://oad.up.seesaa.net/program/personalyear.htm" target="_blank">つぶやく</a>';
}
function calcNumber(inputNumber) {
var remain = inputNumber % 10;
if (inputNumber >= 10) {
remain += calcNumber((inputNumber - remain) / 10);
}
return remain;
}
function hasError(year, month, day) {
if (!year.match(/^[1-9][0-9]{3}$/)) {
alert('知りたい年は西暦(整数4桁)で入力してください。');
return true;
}
var monthDays = {}
for (var i = 0; i < CommonMonthDays.length; i++) {
monthDays[i] = CommonMonthDays[i];
}
if (isLeapYear(parseInt(year))) {
monthDays[1]++;
}
if (!isFinite(month) || !isFinite(day) ||
parseInt(month) < 1 || 12 < parseInt(month) ||
parseInt(day) < 1 || monthDays[parseInt(month) - 1] < parseInt(day)) {
alert('誕生日を正しく入力してください。');
return true;
}
return false;
}
function getMessage(year, personalNumber) {
var resultMessage = '';
var postMessage = ''
switch (personalNumber) {
case 1:
resultMessage = '始まりの年。新しいことを始めるチャンス、更なる飛躍のチャンスがあります。リスクはつきものですが勇気と自信を持って行動に移しましょう!';
postMessage = '始まりの年。新しいことを始めるチャンス、更なる飛躍のチャンスがあります。リスクはつきものですが勇気と自信を持って行動に移します!';
break;
case 2:
resultMessage = '人間関係の年。さまざまな出会いがあります。素晴らしい人と出会ったら、チャンスを逃さぬよう、積極的に働きかけましょう!';
postMessage = '人間関係の年。さまざまな出会いがあります。素晴らしい人と出会ったら、チャンスを逃さぬよう、積極的に働きかけます!';
break;
case 3:
resultMessage = '楽しみを原動力に創造する年。祝福に満ち、人生をおおいに楽しむことができます。後ろ向きな考えを断ち、やってみたいことに取り組みましょう!';
postMessage = '楽しみを原動力に創造する年。祝福に満ち、人生をおおいに楽しむことができます。後ろ向きな考えを断ち、やってみたいことに取り組みます!';
break;
case 4:
resultMessage = '足固めの年。生活の基盤作りが順調に進みます。なまけることなく、他人に誇れる何かを成し遂げるためにコツコツ取り組みましょう!';
postMessage = '足固めの年。生活の基盤作りが順調に進みます。なまけることなく、他人に誇れる何かを成し遂げるためにコツコツ取り組みます!';
break;
case 5:
resultMessage = '変革の年。あらゆる面で変化が訪れます。チャンスにできる変化を逃さぬようにしましょう!';
postMessage = '変革の年。あらゆる面で変化が訪れます。チャンスにできる変化を逃さぬようにします!';
break;
case 6:
resultMessage = '責任の年。自分のことだけでなく、他人のことについても責任を背負うことになります。しかしこの1年力を尽くせば思いがけない収穫があります!';
postMessage = '責任の年。自分のことだけでなく、他人のことについても責任を背負うことになります。この1年力を尽くして思いがけない収穫を手にします!';
break;
case 7:
resultMessage = '自己革変の年。自分の人生を見つめなおし、新たな知識を吸収することで、視野を広げることができます。';
postMessage = '自己革変の年。自分の人生を見つめなおし、新たな知識を吸収することで、視野を広げます。';
break;
case 8:
resultMessage = '決断と実行の年。過去7年間の努力が実を結びます。努力の成果は昇格・増収となって現れ、さらに前進するチャンスが訪れます。';
postMessage = '決断と実行の年。過去7年間の努力が実を結びます。努力の成果は昇格・増収となって現れ、さらに前進するチャンスが訪れます。';
break;
case 9:
resultMessage = '完結の年。自分の周りを見つめなおし、過去への執着を捨てましょう。やりかけの仕事を締めくくり、次のステップに目を向けましょう。';
postMessage = '完結の年。自分の周りを見つめなおし、過去への執着を捨て去ります。やりかけの仕事を締めくくり、次のステップに目を向けます。';
break;
}
resultMessage = year + '年はあなたにとって' + resultMessage;
postMessage = year + '年は私にとって' + postMessage;
return [resultMessage, postMessage];
}
window.onload = function() {
document.getElementById('resolve').onclick = function() {resolve();};
document.getElementById('year').value = ((new Date).getFullYear() + 1).toString();
}
</script>
</head>
<body style="text-align:center;">
<h1>あの年の運勢診断</h1>
<p>特定の年がどんな年になるか、あなたの誕生日をもとに判定します。</p>
<p>知りたい年: <input type="number" class="number" step="1" id="year" value="2015" max="9999" min="1000" required="required" style="width:4em" />年</p>
<p>
誕生日:
<input type="number" class="number" step="1" id="month" value="1" max="12" min="1" required="required" style="width:3em" />月
<input type="number" class="number" step="1" id="day" value="1" max="31" min="1" required="required" style="width:3em" />日
</p>
<p><input type="button" value="診断!" id="resolve" /></p>
<h2>診断結果</h2>
<p id="result">こちらに結果が表示されます。</p>
<p id="tweet"></p>
<p>(この診断結果は数秘術を元にしています。)</p>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment