現在、列車の在線ビューアを作成しています。
以下のサイトをもとに新たに作成しています。
http://r113.web.fc2.com/p/viewer/nankai-kouya/index.html
このサイトでは、平日ダイヤと土休日ダイヤの2パタンしかダイヤ選択できませんが、
自分は、ダイヤ選択のパターンで土休日ダイヤから、土曜日をさらに再分割に成功しました。
しかし、初期設定では、2パターンしかできません。
それもそのはず、どこのサイトでもjsにおけるフラグの立て方を紹介したサイトでは、いずれも、trueもしくはfalseの場合分けしかなく、3パターン目の記述が存在しませんでした。
if文ならelseだけだと2つまで、else ifを書き込むことによって、3パターンも、4パターンも5パターンも作れれるのです。
しかし、フラグに関してそのような記述がないということは、もうこういう風に考えざるを得ません。
衝撃的になりますが、これがjavascriptの限界のようです。つまり、javascriptはフラグを2つまでしか立てられないということです。
しかし、個人的にはこのようにやる予定でした。
例えば、1~100までの間の数を設定し、その中から、3の倍数をtrueと返し、それ以外をfalseと返すプログラムなら設定可能ですが、そこから先、falseの中から、5の倍数にtrueと返し、他をfalseと返すプログラムを作ろうとするのは、無理なのでしょうか。
もし可能であれば、回答をお願いできたら幸いです。
尚、フラグは、var 何ちゃらFlag = true;と設定した場合を想定します。省略せずにお願いします。
以下は、自分の書いたソースです。
もし、修正できるポイントがあれば情報のご提供を頂ければ幸いです。ただし、function dayJudge(year, month, date, day)から、
else
saturFlag = false;までは省略なしでお願いします。
//平日ダイヤか土・休日ダイヤかを判定する
function dayJudge(year, month, date, day)
{
//alert(year +" "+ month +" "+ date +" "+ day)
//フラグ
var weekdayFlag = true;
else (weekdayFlag=!weekdayFlag)
{var saturdayFlag=true)
saturdayFlag=!saturdayFlag;}
//月〜金なら立てる
if(day >= 1 && day <= 5)
weekdayFlag = true;
else if(day=6)
saturFlag = true;
else
saturFlag = false;
//祝日ならたおす if(year == 2013 && month == 1 && date == 1) weekdayFlag = false; else if(year == 2013 && month == 10 && date == 14) weekdayFlag = false; else if(year == 2013 && month == 11 && date == 4) weekdayFlag = false; else if(year == 2013 && month == 12 && date == 23) weekdayFlag = false; else if(year == 2014 && month == 1 && date == 1) weekdayFlag = false; else if(year == 2014 && month == 1 && date == 2) weekdayFlag = false; else if(year == 2014 && month == 1 && date == 3) weekdayFlag = false; else if(year == 2014 && month == 1 && date == 13) weekdayFlag = false; else if(year == 2014 && month == 2 && date == 11) weekdayFlag = false; else if(year == 2014 && month == 3 && date == 21) weekdayFlag = false; else if(year == 2014 && month == 4 && date == 29) weekdayFlag = false; else if(year == 2014 && month == 5 && date == 5) weekdayFlag = false; else if(year == 2014 && month == 7 && date == 21) weekdayFlag = false; else if(year == 2014 && month == 9 && date == 15) weekdayFlag = false; else if(year == 2014 && month == 9 && date == 23) weekdayFlag = false; else if(year == 2014 && month == 10 && date == 12) weekdayFlag = false; else if(year == 2014 && month == 11 && date == 3) weekdayFlag = false; else if(year == 2014 && month == 11 && date == 24) weekdayFlag = false; else if(year == 2014 && month == 12 && date == 23) weekdayFlag = false; else if(year == 2015 && month == 1 && date == 1) weekdayFlag = false; else if(year == 2015 && month == 1 && date == 2) weekdayFlag = false; else if(year == 2015 && month == 1 && date == 3) weekdayFlag = false; else if(year == 2015 && month == 1 && date == 12) weekdayFlag = false; else if(year == 2015 && month == 2 && date == 11) weekdayFlag = false; else if(year == 2015 && month == 3 && date == 21) weekdayFlag = false; return weekdayFlag;
}