下面写的感觉不会写了,谁能帮我改下。
就是一下显示出全年的日期,由于每月日期不一样写起来头都大了
2月最大为29就行了。。
其他1月31 3月31 4月30 5月31 6月30 7月31..................for(i=1;i<366;i++){
if(i<32)t="1";
if(i>31&&$i<58)t="2";
if(i>62&&$i<95)t="3";
if(i>95&&$i<126)t="4";
documen.write(t+"月"+(i%29)."日"."<br>");
}

解决方案 »

  1.   

    Date.prototype.toFormatString = function(format) {  
        var weeks = {};  
        weeks['cn'] = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];  
        weeks['en'] = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];  
        var self = this;  
        var fix = {  
            'yyyy' : self.getFullYear(),  
            'MM' : self.getMonth() + 1,  
            'dd' : self.getDate(),  
            'wk' : weeks['cn'][self.getDay()],  
            'hh' : self.getHours(),  
            'min' : self.getMinutes(),  
            'ss' : self.getSeconds()  
        };  
        return format.replace(/[a-zA-Z]+/g, function(m) {  
            return fix[m];  
        });  
    };  
    var i = new Date(2011,0,1);
    while(i.getFullYear()==2011) {
    document.write(i.toFormatString('MM月dd日') + '<br />');
    i.setDate(i.getDate()+1);
    }
      

  2.   


    var date = new Date(new Date().getFullYear(), 0, 1), d = 1000 * 60 * 60 * 24;
    for(i=1;i<366;i++){
    c = new Date(date.getTime() + (i-1) * d);
    document.write((c.getMonth()+1)+"月"+c.getDate()+"日<br>");
    }
      

  3.   

        <script type="text/javascript">
            function show() {
                var year = 2012;
                var month;
                for (month = 1; month <= 12; month++)
                {
                    switch (month) {
                        case 1:
                        case 3:
                        case 5:
                        case 7:
                        case 8:
                        case 10:
                        case 12:
                            for (var j = 1; j <= 31; j++) {
                                document.write(month + "月" + j + "日" + "</br>");
                            }
                            break;
                        case 4:
                        case 6:
                        case 9:
                        case 11:
                            for (var j = 1; j <= 30; j++) {
                                document.write(month + "月" + j + "日" + "</br>");
                            }
                            break;
                        case 2:
                            if (year % 100 != 0 && year % 4 == 0 || year % 100 == 0 && year % 400 == 0) {
                                for (var j = 1; j <= 28; j++) {
                                    document.write(month + "月" + j + "日" + "</br>");
                                }
                            }
                            else {
                                for (var j = 1; j <= 29; j++) {
                                    document.write(month + "月" + j + "日") + '<br />';
                                }
                            }
                            break;
                    }
                }
    }
        </script>
    刚调试过的。ok了的。符合你的心意,具体那个年份你自己填写或添加
      

  4.   

    语法都没写对,运行都不过。。按照你的算法改了下,能执行,但效果不对
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    </head>
    <body>
    <script type="text/javascript">
            for(i=1;i<366;i++){
    if(i<32)t="1";
    if(i>31&&i<58)t="2";
    if(i>62&&i<95)t="3";
    if(i>95&&i<126)t="4";
    document.write(t+"月"+(i%29)+".日.<br>");
    }
        </script>
    </body>
    </html>
      

  5.   

    这是按照你的要求最傻瓜的写法。。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        
    </head>
    <body>
    <script type="text/javascript">
    var m; //月份
    var d; //日期
            for(i=1;i<366;i++){
    if(i<=31){
    m = 1;
    d = i;
    }else if(i>31&&i<=59){
    m = 2;
    d = i - 31;
    }else if(i>59&&i<=90){
    m = 3;
    d = i - 59;
    }else if(i>90&&i<=120){
    m = 4;
    d = i - 90;
    }else if(i>120&&i<=151){
    m = 5;
    d = i - 120;
    }else if(i>151&&i<=181){
    m = 6;
    d = i - 151;
    }else if(i>181&&i<=212){
    m = 7;
    d = i - 181;
    }else if(i>212&&i<=243){
    m = 8;
    d = i - 212;
    }else if(i>243&&i<=273){
    m = 9;
    d = i - 243;
    }else if(i>273&&i<=304){
    m = 10;
    d = i - 273;
    }else if(i>304&&i<=334){
    m = 11;
    d = i - 304;
    }else if(i>334&&i<=365){
    m = 5;
    d = i - 334;
    }
    document.write(m+"月"+d+"日<br>");
    }
        </script>
    </body>
    </html>
      

  6.   

    稍微不那么傻的方法。。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        
    </head>
    <body>
    <script type="text/javascript">
    var m = 1; //月份
    var d = 1; //日期
    var array = [31,28,31,30,31,30,31,31,30,31,30,31];
    var minDay = 0;
            for(var i = 1;i <= 365; i++){
             printDate();
            }
             function printDate(){
             var maxDay = minDay + array[m-1];
             if(i > minDay && i<= maxDay){
             d = i - minDay;
             document.write(m+"月"+d+"日<br>");
             }else if(i > maxDay){
             minDay = maxDay;
             m++;
             printDate();
             }
             }
        </script>
    </body>
    </html>
      

  7.   

    for(i=1;i<366;i++){//var i
    if(i<32)t="1";//var t
    if(i>31&&$i<58)t="2";//手误 $i ?
    if(i>62&&$i<95)t="3";//i等于58,59,60,61,62的时候?
    if(i>95&&$i<126)t="4";//...
    //慢慢算 5,6,7,8,9,10,11,12
    documen.write(t+"月"+(i%29)."日"."<br>");//documen=>document, "."=>"+"
    }抛开粗心的错误不讲,
    你不觉得你的这个方法很费事么?还要事先算好月数对应天数什么的。
    CJ205以及楼上几位的都不错的,可以参考下,有时适当换个思维,海阔天空。若要应着你的思路,你虽说2月是29天...也还得偷下懒,给个双循环,FF3/IE8 下通过。
    纰漏之处请大家指正。var tday;
    for (var i = 1; i <= 12; i++) {
        if (i% 2 == 0) {
            if (i== 2) {
                tday = 29;
            }
            else {
                tday = 30;
            }
        }
        else {
            tday = 31;
        }
        for (var j = 1; j <= tday; j++) {
            document.write(i + "月" + j + "日" + "<br>");
        }
    }
      

  8.   

    其次这代码我要转php的,所以呢。