鱼C论坛

 找回密码
 立即注册
查看: 2276|回复: 1

[作品展示] 一个简陋的万年历(因不擅长美工,所以简陋)

[复制链接]
发表于 2020-3-13 20:20:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="gb2312">
  5. <title>WP231957'S 万年历</title>
  6. <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
  7. <style>
  8.     div{
  9.         text-align: center;
  10.     }
  11.     table {
  12.         margin: auto;
  13.         margin-top:20px;
  14.     }
  15.     body{text-align: center;}
  16.     select{
  17.       margin-top:100px;
  18.     }
  19.     select{
  20.         height:40px;
  21.         width:100px;
  22.     }
  23. </style>
  24. </head>
  25. <body>
  26.     <script>
  27.         $(document).ready(function(){
  28.             var myDate = new Date();
  29.             var year=myDate.getFullYear();
  30.             var month=myDate.getMonth()+1;
  31.             var date=myDate.getDate();
  32.             str="";
  33.             for (i=1950;i<2049;i++){
  34.                 str+="<option value='"+i+"'>"+i+"年</option>";
  35.             }
  36.             $("#year_select").append(str);
  37.             //设置当前select的默认value值(显示值)
  38.             $("#year_select").find("option:contains('"+year+"年')").attr("selected",true);
  39.             str="";
  40.             for (i=1;i<13;i++){
  41.                 str+="<option value='"+i+"'>"+i+"月</option>";
  42.             }
  43.             $("#month_select").append(str);
  44.             //设置当前select的默认value值(显示值)
  45.             $("#month_select").find("option:contains('"+month+"月')").attr("selected",true);
  46.             gradeChange();
  47.             
  48.         });
  49.      
  50.         function gradeChange(){
  51.             trs=document.getElementsByTagName("tr");
  52.             dates=1;
  53.             tc=0;
  54.             
  55.             for(var x=1;x<trs.length;x++){
  56.                tds=trs[x].getElementsByTagName("div");   //取表格每一行的单元格数量 这里用div模拟单元格
  57.                //取select标签所选option的value,其typeof是string  所以下面用parseInt 转换
  58.                year=document.getElementById("year_select").options[document.getElementById("year_select").selectedIndex].value;
  59.                month=document.getElementById("month_select").options[document.getElementById("month_select").selectedIndex].value;
  60.                days=get_day(parseInt(year), parseInt(month));    //获取当下年月是多少天
  61.                shou=getweek2(parseInt(year), parseInt(month),1);  //确定每月1日是星期几
  62.                
  63.                var tmp;
  64.                if(x==1){  //确定每月1日是星期几
  65.                    tmp=shou-1;
  66.                }
  67.                else{
  68.                    tmp=0;
  69.                }
  70.                // 1 日之前的用空格填充
  71.                for(var m=0;m<tmp;m++)
  72.                {
  73.                    tds[m].innerHTML=" ";
  74.                }
  75.                if(tc==0){
  76.                    trs[x].style.display="";  //恢复隐藏列
  77.                    for(var y=tmp;y<tds.length;y++){
  78.                        function isend(y1,days1,dates1){
  79.                           if (y1==6 && days1==dates1){
  80.                              return true;
  81.                              }
  82.                           else{
  83.                             return false;
  84.                           }                          
  85.                        }
  86.                        //tc=1 表明表格填充完毕
  87.                        tds[y].innerHTML=dates;
  88.                        if(dates>days || isend(y,days,dates)==true){
  89.                           console.log(tds[6].innerText);
  90.                           tc=1;
  91.                           break;
  92.                        }
  93.                        
  94.                        dates++;
  95.                    }
  96.                    //31(30,28,29)日之后的单元格用空格填充
  97.                    if (y<6){
  98.                        for(var m=y;m<tds.length;m++)
  99.                        {
  100.                            tds[m].innerHTML=" ";
  101.                        }
  102.                    }
  103.                }
  104.                else{
  105.                     //隐藏列
  106.                     /*
  107.                     for(var m=0;m<tds.length;m++)
  108.                     {
  109.                        tds[m].innerHTML="*";    //这里使用空格撑不开div 所以索性隐藏起来
  110.                     }
  111.                     */
  112.                     trs[x].style.display="none";
  113.                }
  114.            }
  115.         };
  116.    
  117.         //采用蔡基姆拉尔森计算公式
  118.         function getweek2(year,month,day)
  119.         {
  120.             if ((month === 1) || (month === 2))
  121.             {
  122.                 month += 12;
  123.                 year--;
  124.             }
  125.             var w = (day + 2 * month + parseInt((month + 1)*3 / 5 )+ year + parseInt(year / 4) - parseInt(year / 100) + parseInt(year / 400)+1) % 7;
  126.             if (w==0){w=7;}
  127.             return w;
  128.         }
  129.       
  130.         //获取公历年某整月的天数
  131.         function  get_day(year,month)
  132.         {
  133.             var rui=[31,29,31,30,31,30,31,31,30,31,30,31];
  134.             var ping=[31,28,31,30,31,30,31,31,30,31,30,31];
  135.             var ruiflag=0;
  136.             if((year%4==0 && year%100!=0) || year%400==0){
  137.                 ruiflag=1;
  138.             }
  139.             if(ruiflag==1){
  140.                 return rui[month-1];
  141.             }else{
  142.                 return ping[month-1];
  143.             }
  144.         }
  145.    
  146.     </script>
  147.     <select id="year_select" onchange="gradeChange()" style="margin-right:40px" class="year_month_select">
  148.     </select>
  149.     <select id="month_select"  onchange="gradeChange()">  
  150.     </select>
  151.     <table border="1">
  152.          <tr>
  153.             <td>星期一</td>
  154.             <td>星期二</td>
  155.             <td>星期三</td>
  156.             <td>星期四</td>
  157.             <td>星期五</td>
  158.             <td>星期六</td>
  159.             <td>星期七</td>
  160.          </tr>
  161.          <tr>   <!-- 第一行>-->
  162.             <td  class="blcok">
  163.                 <div>1</div>
  164.             </td>
  165.             <td  class="blcok">
  166.                 <div>1</div>
  167.             </td>
  168.             <td  class="blcok">
  169.                 <div>1</div>
  170.             </td>
  171.             <td  class="blcok">
  172.                 <div>1</div>
  173.             </td>
  174.             <td  class="blcok">
  175.                 <div>1</div>
  176.             </td>
  177.             <td  class="blcok">
  178.                 <div>1</div>
  179.             </td>
  180.             <td  class="blcok">
  181.                 <div>1</div>
  182.             </td>
  183.          </tr>
  184.            <tr>    <!-- 第2行>-->
  185.             <td  class="blcok">
  186.                 <div>1</div>
  187.             </td>
  188.             <td  class="blcok">
  189.                 <div>1</div>
  190.             </td>
  191.             <td  class="blcok">
  192.                 <div>1</div>
  193.             </td>
  194.             <td  class="blcok">
  195.                 <div>1</div>
  196.             </td>
  197.             <td  class="blcok">
  198.                 <div>1</div>
  199.             </td>
  200.             <td  class="blcok">
  201.                 <div>1</div>
  202.             </td>
  203.             <td  class="blcok">
  204.                 <div>1</div>
  205.             </td>
  206.          </tr>
  207.            <tr>   <!-- 第3行>-->
  208.             <td  class="blcok">
  209.                 <div>1</div>
  210.             </td>
  211.             <td  class="blcok">
  212.                 <div>1</div>
  213.             </td>
  214.             <td  class="blcok">
  215.                 <div>1</div>
  216.             </td>
  217.             <td  class="blcok">
  218.                 <div>1</div>
  219.             </td>
  220.             <td  class="blcok">
  221.                 <div>1</div>
  222.             </td>
  223.             <td  class="blcok">
  224.                 <div>1</div>
  225.             </td>
  226.             <td  class="blcok">
  227.                 <div>1</div>
  228.             </td>
  229.          </tr>
  230.            <tr>    <!-- 第4行>-->
  231.             <td  class="blcok">
  232.                 <div>1</div>
  233.             </td>
  234.             <td  class="blcok">
  235.                 <div>1</div>
  236.             </td>
  237.             <td  class="blcok">
  238.                 <div>1</div>
  239.             </td>
  240.             <td  class="blcok">
  241.                 <div>1</div>
  242.             </td>
  243.             <td  class="blcok">
  244.                 <div>1</div>
  245.             </td>
  246.             <td  class="blcok">
  247.                 <div>1</div>
  248.             </td>
  249.             <td  class="blcok">
  250.                 <div>1</div>
  251.             </td>
  252.          </tr>
  253.            <tr>    <!-- 第5行>-->
  254.             <td  class="blcok">
  255.                 <div>1</div>
  256.             </td>
  257.             <td  class="blcok">
  258.                 <div>1</div>
  259.             </td>
  260.             <td  class="blcok">
  261.                 <div>1</div>
  262.             </td>
  263.             <td  class="blcok">
  264.                 <div>1</div>
  265.             </td>
  266.             <td  class="blcok">
  267.                 <div>1</div>
  268.             </td>
  269.             <td  class="blcok">
  270.                 <div>1</div>
  271.             </td>
  272.             <td  class="blcok">
  273.                 <div>1</div>
  274.             </td>
  275.          </tr>
  276.            <tr>    <!-- 第6行>-->
  277.             <td  class="blcok">
  278.                 <div>1</div>
  279.             </td>
  280.             <td  class="blcok">
  281.                 <div>1</div>
  282.             </td>
  283.             <td  class="blcok">
  284.                 <div>1</div>
  285.             </td>
  286.             <td  class="blcok">
  287.                 <div>1</div>
  288.             </td>
  289.             <td  class="blcok">
  290.                 <div>1</div>
  291.             </td>
  292.             <td  class="blcok">
  293.                 <div>1</div>
  294.             </td>
  295.             <td  class="blcok">
  296.                 <div>1</div>
  297.             </td>
  298.          </tr>
  299. </body>
  300. </html>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-13 20:21:39 | 显示全部楼层
附我调试最后通过的一个失败案例

无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 06:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表