JavaScript--利用循环解决输入日期为星期几的问题

1.在calDate()的基础之上添加 计算当前日期的是星期几的功能
//注:设定1900年1月1日为周一

思路:声明,用户输入的年,月,日;根据1900年1月1日周一当累加基数
输入的年份天数进行累加,又将年份分为平年闰年两种情况,再根据当年月份和输入日期,进行月份累加循环,计算当日为这一年的天数,最后将所有累加结果取7的余数,就是得到当前日期为星期几。
声明,用户输入的年,月,日,
计算当天为今年的多少天
总天数变量预定为0,用来存储数据。当月份为1月时日期与总天数相等,所以声明循环变量i=1,因为每个月的天数不一样,用while和switch进行循环每个不同月份累加,smon>i,月份从二月份天数开始循环,再加当前日期

计算当前日期是当前年份的总天数:

      var year=Number(prompt("请输入年份"));
		var mon=Number(prompt("请输入月份"));
		var days=Number(prompt("请输入几号"));
		 var today=0;   //总天数
		 var i=1;       //循环变量
		 console.log(today);
		while(mon>i){
			switch(i){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
			    today+=31;
			break;	

二月根据年份分为28天或29天

  case 2:
			if(year%4==0&&year%100!=0||year%400==0){
			today+=29;	
			}else{
				today+=28;	
			}				
			break;	
			case 4:
			case 6:
			case 9:				     
			case 11:
			     today+=30;
			break;				
			}
		i++;	
		}
		today+=days;       //计算出当前日期当年的总天数

计算从1900年到上一年的总天数:

for(var y=1900;y<year;y++){                               //声明年份为循环变量,进行累加
			if(year%4==0&&year%100!=0||year%400==0){     //分为平年,闰年
				today+=366	;			
			}else{
				today+=365	;
			}			
		}
		 console.log(today);   

最后 :

		 var week=today%7                                     //总天数取7的余数         
		 var mag="星期"                                         //星期一到星期天进行分支判断   
	       switch(week){
	       	case 1:
	       	mag+="一"
	       	break;
	       	case 2:
	       	mag+="二"
	       	break;
	       	case 3:
	       	mag+="三"
	       	break;
	       	case 4:
	       	mag+="四"
	       	break;
	       	case 5:
	       	mag+="五"
	       	break;
	       	case 6:
	       	mag+="六"
	       	break;
	       	case 0:
	       	mag+="日"
	       	break;
	       	
	       }
		  console.log(mag);	                               //打印输出
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值