A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
かいとうがつきませんね。
ところで、ほんとうに switch ぶんをつかわないとだめですか?
むだにながくなるようにおもいます。
alert (['yes', 'no'][1]); //はいれつの n ばんめをとりだす。を、きほんとして、いか。
var A = ['やぎ', 'みずがめ', 'うお', 'おひつじ', 'おうし', 'ふたご', 'かに',
'しし', 'おとめ', 'てんびん', 'さそり', 'いて'];
var B = ['ガーネット', 'アメシスト', 'アクアマリン', 'ダイヤモンド', 'エメラルド', 'パール',
'ルビー', 'ペリドット', 'ブルーサファイア', 'オパール', 'トパーズ', 'トルコ'];
function constellation (yyyymmdd) {
var ymd = parseInt (yyyymmdd, 10); //文字列だと思うので十進数の数値に変換
var md = ymd % 10000;
var m = Math.floor (md / 100);
var x = m * 100 + 21 + (4 < m) + (6 < m) * 2 - ( 9 < m);//省略しすぎ?
return md < x ? m - 1: m == 12 ? 0: m;
}
function birthstone (yyyymmdd) {
var ymd = parseInt (yyyymmdd, 10); //文字列だと思うので十進数の数値に変換
var m = Math.floor (ymd % 10000 / 100) - 1; // 月の部分だけを計算する
return m;
}
alert (A[constellation ('20000101')]);
alert (B[birthstone ('20001231')]);
No.2
- 回答日時:
回答がないみたいなので…
>誕生石と星座をアラート表示するスクリプトを作っています
どのような処理にしているのか、どこまでできているのかまったくわからないので、できているところまでを提示した方が回答が付きやすいはずです。
>switchで行う場合、それぞれどのようにコードを組めばいいのでしょうか?
switchで行なう方法は思いつきませんが、以下のような考え方でもできると思いますのでご参考までに。
入力の方法や、表示メッセージの内容などをどうしたいのかも不明なので、そのあたりは空白にしてあります。
コメントの内容に応じた処理を入れてください。(変数名や関数名は適当です)
* 誕生石は複数あるし違う月だったりもするので仮に適当に設定。
* 星座の区切り日の正確なのも不明なのでこれも仮に設定。(いろいろあるみたい)
* (↑)どれが正かわからないため、計算で求めずに配列に入れて比較する方式にしています。
(全角空白は半角に)
// ***** 誕生日から誕生石・星座を表示するメイン処理
function BirthstoneAndZodiac(){
var day; // プロンプトで値を入力、または
// テキストボックスの値を取得する等
// (入力値を変数dayに)
if(dateCheck(day)){ // 入力値をチェック
var bz = dayToBZ(day);//正しければ日付から誕生石と星座を得る
// 誕生石・星座名から表示する文章を
// 作成して表示する
} else {
// 入力値が正しくない場合の処理
// (エラー表示など)
}
}
// *** "yyyymmdd"形式の誕生日から誕生石・星座を返す関数
function dayToBZ(day){
// 変数及びデータの定義
var birthday, i, index_b, index_z,
bzData = {
// 星座の区切り日(一律の規則ではないので配列化)
date:["0121","0221","0321","0421","0522","0622",
"0724","0824","0924","1023","1123","1223"],
// 誕生石の配列(12月がindex=0)
birthstone:["turquoise","garnet","amethyst","aquamarine","diamond",
"emerald","pearl","ruby","peridot","sapphire","opal","topaz"],
// 星座の名前(12/23~1/20のindexが0:dateの日付順に対応)
zodiac:["Capricornus","Aquarius","Pices","Aries","Taurus","Gemini",
"Cancer","Leo","Virgo","Libra","Scorpius","Sagittarius"]
};
// yyyymmddの後ろの4文字(=mmdd)
var birthday = day.slice(-4);
// 該当する星座を探すためのループ
// 該当する日付(月)の時にループを抜ける
for(i=0; i<12; i++)
if(bzData.date[i]>birthday) break;
//(mmddの文字列の値で比較)
//(数値化しても同じ結果なので文字のまま比較)
// 該当しなかった場合も含め適正化(0~11の値にする)
index_z = i%12;
// mmの文字を数値化して、0~11の値に
//(誕生石は月と合致しているので、月を求めるだけでよい)
index_b = +birthday.substring(0,2)%12;
// 該当する誕生石・星座を返す
//(値が2種類あるのでオブジェクトで)
return { birthstone:bzData.birthstone[index_b],
zodiac:bzData.zodiac[index_z] };
}
// *** 入力値をチェックする関数(正しければtrueを返す)
function dateCheck(d){
// とりあえず一番簡単なチェックのみ(8文字の数字をチェック)
return d?/^\d{8}$/.test(d):d;
// きちんとやるなら、入力値を一旦Dateオブジェクトに変換して
// 再度yyyymmdd形式に変換し、最初の文字列と比較するとか。
// (同じなら正)
//(意味は00日や35日、13月のような存在しない日の入力チェック)
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Chrome(クローム) Chromeの描画領域を2分割して異なるスクロール位置を同時に表示させることはできますか 1 2023/03/01 16:53
- JavaScript 読み込んだQRコードをフォームに受け渡したい 1 2023/05/18 11:18
- 地球科学 地球内核最中心部における核融合反応の可能性について質問です。 現在地球内核の熱源は地球始原時のエネル 2 2022/05/08 15:57
- 医学 二次医療圏の人口分布 1 2023/05/10 11:37
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- PostgreSQL postgreSQLをbashで実行する際に「MORE」表示をなくす方法 1 2023/05/08 21:42
- Visual Basic(VBA) 翌日にお休み予定の従業員がいる場合にアラートを出したい 1 2023/07/11 11:18
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
空の配列に2次元配列の追加
-
React hooksが値を返して配列変...
-
javascriptからphpに配列データ...
-
配列の初期化
-
メソッドが返す配列オブジェク...
-
【JavaScript】オブジェクト型...
-
総当りの配列を返す関数の作成
-
JavaScript で配列の終わりまで...
-
JavaScriptで簡単なクイズを作...
-
functionから別のfunctionを実...
-
javascriptで自動計算フォーム...
-
日本語入力の禁止
-
URLの一部をコピーできるブック...
-
関数でy=g(x)のgとは何の略です...
-
google apps scriptの終了のさせ方
-
第3日曜日のみの日付を取得、...
-
HTML:Tableタグに対し、JavaScr...
-
javaScript textareaの一行あた...
-
Javascriptで引数の参照渡しか...
-
innerHTML実行後のイベント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
二次元配列を使って順位をだす...
-
C#テキストボックスの文字を配...
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
javascript 変数名の連結をしたい
-
React hooksが値を返して配列変...
-
undefinedを表示させない方法は...
-
javascriptで行を抽出したいです。
-
二次元配列の全要素の全要素を...
-
JavaScriptにおける[] とか :...
-
JavaScriptでの動的な多次元配...
-
順列生成アルゴリズムについて...
-
WSH(Jscript)でファイル一覧
-
JavaScriptからPHPに配列を渡す...
-
javascriptからphpに配列データ...
-
多次元配列から最大値を1行また...
-
textareaに入力されたデータを...
-
どうすればresponseText結果を...
-
オブジェクトから任意のプロパ...
-
フォーム入力値の重複チェック
おすすめ情報