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

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

作者: 李健的小迷弟 | 来源:发表于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));//打印前面定义的年份、月份的日历

相关文章

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

    一 利用js函数打印日历 定义变量年份、月份 定义函数判断指定年份是否为闰年。 是返回值 return t...

  • MC小游戏串烧(花雨庭)l

    对不起,本章干涉到法律,请多多包容,谢谢!

  • 2018-10-11

    总希望自己能变成一个包容性很强的人,奈何小嘴爱张嘴。 那就请大家多多包容我吧!(哈哈)

  • 你好。

    微风轻轻起,我好庆幸遇见你。 余生都是你,请多多包容我的坏脾气。

  • 包容多多,朋友多多

    2022年第30周涂画图画 朋友~请看周一图画 看透不说透 还是好朋友? ——原创来自小林漫画 毁掉一首好歌 最快...

  • 感受温情

    本人喜欢分享些日常生活和感悟,这是第一篇小作,如有不妥的地方,请大家多多指教呀!渣渣文笔请大家多多包容哈~感谢大家...

  • iOS 导航控制器如何随意push和pop

    iOS 导航控制器如何随意push和pop 第一次开始写技术文章,请同学们多多关照,有错的地方请给我指出,大家学习...

  • 借着对别人的批评看清自己

    我发现当我看到别人的不是,错点时,实际上自己身上也有。是自己不能包容自己的错点,讨厌自己的错点,自己改正不了,当我...

  • 设计自己的签名

    可能设计地不太好,请大家多多谅解,光线有一点暗。

  • 《小密圈app体验报告》

    互联网产品小白第一份产品体验报告,请各位大大多多指教,您的建议真的很重要!

网友评论

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

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