WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:閏年の計算方法は?

0:[投稿] ラムラム [2002/09/17 11:53 ][環境:WIN+IE WIN系+Java]

<HTML>
<HEAD>
<TITLE></TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_JIS">
<META HTTP-EQUIV="Content-Type" CONTENT="text/css">
</HEAD>
<BODY BGCOLOR="#ffffff">
<FORM METHOD=POST NAME="Uruu">
<P>
<BR>
<DIV ALIGN=CENTER>
<TABLE BORDER>
<TR>
<TD COLSPAN=2><B>年月日</B></TD>
<TD COLSPAN=2>
<SELECT NAME="nYear" MCLASS=FormPart>
<OPTION>
<OPTION VALUE="2000">2000
<OPTION VALUE="2001">2001
<OPTION VALUE="2002">2002
<OPTION VALUE="2003">2003
<OPTION VALUE="2004">2004
<OPTION VALUE="2005">2005
</SELECT>年
<SELECT NAME="nMonth" MCLASS=FormPart>
<OPTION>
<OPTION VALUE="1">1
<OPTION VALUE="2">2
<OPTION VALUE="3">3
<OPTION VALUE="4">4
<OPTION VALUE="5">5
<OPTION VALUE="6">6
<OPTION VALUE="7">7
<OPTION VALUE="8">8
<OPTION VALUE="9">9
<OPTION VALUE="10">10
<OPTION VALUE="11">11
<OPTION VALUE="12">12
</SELECT>月
<SELECT NAME="nDay" MCLASS=FormPart>
<OPTION>
<OPTION VALUE="1">1
<OPTION VALUE="2">2
<OPTION VALUE="3">3
<OPTION VALUE="4">4
<OPTION VALUE="5">5
<OPTION VALUE="6">6
<OPTION VALUE="7">7
<OPTION VALUE="8">8
<OPTION VALUE="9">9
<OPTION VALUE="10">10
<OPTION VALUE="11">11
<OPTION VALUE="12">12
<OPTION VALUE="13">13
<OPTION VALUE="14">14
<OPTION VALUE="15">15
<OPTION VALUE="16">16
<OPTION VALUE="17">17
<OPTION VALUE="18">18
<OPTION VALUE="19">19
<OPTION VALUE="20">20
<OPTION VALUE="21">21
<OPTION VALUE="22">22
<OPTION VALUE="23">23
<OPTION VALUE="24">24
<OPTION VALUE="25">25
<OPTION VALUE="26">26
<OPTION VALUE="27">27
<OPTION VALUE="28">28
<OPTION VALUE="29">29
<OPTION VALUE="30">30
<OPTION VALUE="31">31
</SELECT>日</TD>
</FORM></BODY>
</HTML>
で、コンボボックスに2002年を選択して、月は、2月を選択したら、日には28日までしか、選択項目がないようにしたいのです。
2004年の2月を選択したら、29日まで選択項目があるという感じにするためには、どうすればよいのでしょうか?
まだ、JavaScriptを初めて間もないのでわっ分かりやすくお願いいたします。<(_ _)>


1:[回答] x [2002/09/17 16:08 ]

タイトルにたいする回答です。

年が4で割り切れる場合が閏年である。
ただし、100で割り切れる場合は閏年でない。
ただし、400で割り切れる場合は閏年である。


2:[質問] ラムラム [2002/09/17 16:25 ]

xさん、ありがとうございます!
それを、HTMLの中のJavaScriptに入れるプログラムは、どう書けば良いのでしょうか???ん〜〜。


3:[完了] ラムラム [2002/09/19 15:53 ]

xさんの回答を頼りに自分なりに作ってみたところ、完成いたしました!
ありがとうございました!m(_ _)m


4:[完了] のぐりん [MAIL] [2002/09/20 09:45 ]

できれば、参考までに、そのソースを提示していただけないでしょうか?


5:[関連] ラムラム [2002/09/20 11:40 ]

<HTML>
<HEAD>
<TITLE></TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_JIS">
<META HTTP-EQUIV="Content-Type" CONTENT="text/css">
<SCRIPT TYPE="text/javascript">

function HizukeCheck(parts1, parts2, parts3) {

    //月が選ばれているかチェック
    if(isNaN(parts2.value)!=true && parts2.value >= 1 && parts2.value <= 12) {
        if(parts2.value == 1 || parts2.value == 3 || parts2.value == 5 ||
             parts2.value == 7 || parts2.value == 8 || parts2.value == 10 || parts2.value == 12) {
            parts3.length = 32;
            parts3.options[0].value = "";
            parts3.options[0].text = "";

            for(i = 1; i <= 31; i++){
                parts3.options[i].value = i;
                parts3.options[i].text = i;
            }
        }
        else if(parts2.value == 4 || parts2.value == 6 || parts2.value == 9 || parts2.value == 11) {

            parts3.length = 31;
            parts3.options[0].value = "";
            parts3.options[0].text = "";

            for(i = 1; i <= 30; i++){
                parts3.options[i].value = i;
                parts3.options[i].text = i;
            }
        }
        else {
            //年が選ばれているかチェック
            if(isNaN(parts1.value)==false && parts1.value >= 2000 && parts1.value <= 2020 &&
            //閏年チェック
             (((parts1.value % 4) == 0 && (parts1.value % 100) != 0) || (parts1.value % 400) == 0)) {
                parts3.length = 30;
                parts3.options[0].value = "";
                parts3.options[0].text = "";

                for(i = 1; i <= 29; i++){
                    parts3.options[i].value = i;
                    parts3.options[i].text = i;
                }
            }
            else {
                parts3.length = 29;
                parts3.options[0].value = "";
                parts3.options[0].text = "";

                for(i = 1; i <= 28; i++){
                    parts3.options[i].value = i;
                    parts3.options[i].text = i;
                }
            }
        }
    }
    else {
        parts3.length = 0;
    }
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#ffffff">
<FORM METHOD=POST NAME="UruuForm">
<P>
<DIV ALIGN=CENTER>
<FONT SIZE=4><B>閏年計算方法</B></FONT><BR>
<TABLE BORDER>
<TR>
<TD><B>年月日入力</B></TD>
<TD><SELECT NAME="nYear1"
onChange="HizukeCheck(document.UruuForm.nYear1, document.UruuForm.nMonth1, document.UruuForm.nDay1)"
MCLASS=FormPart>
<OPTION>
<OPTION VALUE="2002">2002
<OPTION VALUE="2003">2003
<OPTION VALUE="2004">2004
<OPTION VALUE="2005">2005
<OPTION VALUE="2006">2006
<OPTION VALUE="2007">2007
<OPTION VALUE="2008">2008
<OPTION VALUE="2009">2009
<OPTION VALUE="2010">2010
</SELECT>年
<SELECT NAME="nMonth1"
onChange="HizukeCheck(document.UruuForm.nYear1,document.UruuForm.nMonth1,document.UruuForm.nDay1)"
MCLASS=FormPart>
<OPTION>
<OPTION VALUE="1">1
<OPTION VALUE="2">2
<OPTION VALUE="3">3
<OPTION VALUE="4">4
<OPTION VALUE="5">5
<OPTION VALUE="6">6
<OPTION VALUE="7">7
<OPTION VALUE="8">8
<OPTION VALUE="9">9
<OPTION VALUE="10">10
<OPTION VALUE="11">11
<OPTION VALUE="12">12
</SELECT>月
<SELECT NAME="nDay1" MCLASS=FormPart>
<OPTION>
</SELECT>日〜
<SELECT NAME="nYear2"
onChange="HizukeCheck(document.UruuForm.nYear2,document.UruuForm.nMonth2,document.UruuForm.nDay2)"
MCLASS=FormPart>
<OPTION>
<OPTION VALUE="2002">2002
<OPTION VALUE="2003">2003
<OPTION VALUE="2004">2004
<OPTION VALUE="2005">2005
<OPTION VALUE="2006">2006
<OPTION VALUE="2007">2007
<OPTION VALUE="2008">2008
<OPTION VALUE="2009">2009
<OPTION VALUE="2010">2010
</SELECT>年
<SELECT NAME="nMonth2"
onChange="HizukeCheck(document.UruuForm.nYear2,document.UruuForm.nMonth2,document.UruuForm.nDay2)"
MCLASS=FormPart>
<OPTION>
<OPTION VALUE="1">1
<OPTION VALUE="2">2
<OPTION VALUE="3">3
<OPTION VALUE="4">4
<OPTION VALUE="5">5
<OPTION VALUE="6">6
<OPTION VALUE="7">7
<OPTION VALUE="8">8
<OPTION VALUE="9">9
<OPTION VALUE="10">10
<OPTION VALUE="11">11
<OPTION VALUE="12">12
</SELECT>月
<SELECT NAME="nDay2" MCLASS=FormPart>
<OPTION>
</SELECT>日
</TD></TR></P></FORM></BODY>
</HTML>
のぐりんさん、分かりづらかったらごめんなさい。m(_ _;)m


6:[完了] のぐりん [MAIL] [2002/09/20 16:33 ]

ありがとうございます。
参考になりました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World