美文网首页
第一份技术文章、有什么错点请多多包容。

第一份技术文章、有什么错点请多多包容。

作者: 李健的小迷弟 | 来源:发表于2018-08-25 15:41 被阅读0次

    一 利用js函数打印日历

    定义变量年份、月份

    var _year=2018,
          _month=8;
    

    定义函数判断指定年份是否为闰年。

    是返回值 return <Boolean> ture 为闰年 false:为平年;
    代码如下:

    function isLeapYear(year) {
       return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
       //判断平闰年条件 
    }
    
    

    定义函数计算指定年月的月份天数。

    代入上个函数判断所选年份是否为闰年,在用switch结构分别给出各个月份的天数;
    代码如下:

    function calcMonthDays(year, month) {
                // 保存天数
                var _days;
                switch(month) {
                    case 2:
                        _days = isLeapYear(year) ? 29 : 28;
                        break;
                    case 4:
                    case 6:
                    case 9:
                    case 11:
                        _days = 30;
                        break;
                    default:
                        _days = 31;
                }
                // 返回天数
                return _days;
            }
    

    定义函数计算指定年月的1号距离1900-1-1是第多少天。

    代码如下:

    function calcTotalDays(year, month) {
                // 总天数
                var _totalDays = 1;
                // 求year年month月1号是当年第多少天
                for (var i = 1; i < month; i++) { // i 输入月份之前每个月
                    _totalDays += calcMonthDays(year, i);
                }
                // 累加年份的总天数
                for (var i = 1900; i < year; i++) { // 1900之间的每一年
                    _totalDays += isLeapYear(i) ? 366 : 365;
                }
                // 返回总天数
                return _totalDays;
            }
    
    

    定义函数求指定年月1号是星期几。

    代码如下:

    function calcWeekday(year, month) {
                // 求年月1号距1900-1-1总共多少天
                var _totalDays = calcTotalDays(year, month);
                // 求星期
                var _weekday = _totalDays % 7;
                // 返回
                return _weekday;
            }
    

    定义函数打印日历。

    代码如下:

    function  print(year,month){
               
              var calender="日\t一\t二\t三\t四\t五\t六"+"\n";
                //定义首行内容、\t表示制表符号:用作对齐格式。\n表示换行。
                for(var i=0;i<calcWeekday(year,month);i++)
                   {
                    calender+="\t";
                    //调用上个函数判断应该在1号前打印多少空格并制表
                   }
                   
                for(var i=1;i<=CalcMonthDay(year,month);i++){
                    calender+=i+"\t";
                    //调用月份天数函数循环每月有多少天
                    if((calcWeekday(year,month)+i)%7===0)
                    calender+="\n"; //换行
                           //调用上个函数判断1号所在星期几加上这个月的几号i,如果能够整除7(一个星期),则换行    
                }
                
                return calender; //返回值;
        }
    
             console.log(print(_year,_month));//打印前面定义的年份、月份的日历
    

    相关文章

      网友评论

          本文标题:第一份技术文章、有什么错点请多多包容。

          本文链接:https://www.haomeiwen.com/subject/aolgiftx.html