1,年份算是否是闰年,确认2月份的天数
2,得到每个月的天数,可以放数组里
3,根据月份得到当前月份的天数
4,根据日期加3得到的天数就ok了。
function isLeapYr(yr) { //判断闰年 return (yr % 4 === 0 && yr % 100 !== 0) || (yr % 100 === 0 && yr % 400 === 0); }function count(y, m, d) { var mdays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var mSum = 0; var sum = 0; //如果是闰年的话,那么2月份就应该有29天 isLeapYr(y) ? mdays[1] = 29 : mdays[1]; //计算该月份之前的总天数,比如m=3,那么就计算1和2月的总天数 for (var i = 0; i < m - 1; i++) { mSum += mdays[i]; } //加上当月天数 sum = mSum + d; return sum; }
//弹出年、月、日输入框,声明年鱼儿,并赋值 var y =parseInt(prompt("请输入你的出生年份")); var m = parseInt(prompt("请输入你的出生月份")); var d =parseInt(prompt("请输入你的出生日期")); //月 //求各月份数字之和 var getMonth=new Array(31,28,31,30,31,30,31,31,30,31,30); var sum1=0,i; for(i=0;i<m-1;i++){ sum1+=getMonth[i] } //年 //判断年是否为闰年,是且大于2月份加一 if(( y%400 ==0||(y % 4 == 0&& y%100 !=0))&& m > 2){ sum=sum1 + d +1; document.write("该天为一年中的第"+sum+"天"); }else{ sum=sum1+d; document.write("该天为一年中的第"+sum+"天"); }
利用时间函数进行计算
var now = new Date();//输入日期以今日为例var NewYearsDay = new Date(now.getFullYear(), 0, 0, 0, 0, 0);//该年第一天console.log((now.getTime()-NewYearsDay.getTime())/86400000>>>0)//算出两者的时间戳之差就是时间差的微秒数 再用时间差除以天的微秒数86400000 取整 就是第几天
var endDate = new Date(y, m-1, d), startDate = new Date(y, 0, 0), days = (endDate - startDate) / 1000 / 60 / 60 / 24; document.write("该天为一年中的第"+ days +"天");
//while循环实现function calNum(n) { var product = 1; while(n > 1){//1*5*4*3*2,1*n*(n-1)*(n-2)*...*2 product *= n; n--; } return product; } console.log(calNum(5))
//for循环实现 function calNum(n){ var a = 1, str = '1*'; for (var i = 2; i <= n; i++) { str += i + '*'; a *= i; } str = str.substr(0,str.length-1); return str + '=' +a; } console.log(calNum(5));
var prime = function(len){ var i,j; var arr = []; for(i = 1; i < len; i++){ for(j=2; j < i; j++){ if(i%j === 0) { break; } } if(i <= j && i !=1){ arr.push(i); } } return arr; };console.log(prime(100));
时间复杂度为O(2^n),空间复杂度为O(n)
function recurFib(n) { if (n < 2) { return n; } else { return recurFib(n-1) + recurFib(n-2); } } alert(recurFib(10));//将显示55
时间复杂度为O(n),空间复杂度为O(n)
function dynFib(n) { var res = [1,1]; if (n == 1 || n == 2) { return 1; } for (var i = 2; i < n; i++) { val[i] = val[i-1] + val[i-2]; } return val[n-1]; } alert(dynFib(10));//将显示55
时间复杂度为O(n),空间复杂度为O(1)
function iterFib(n){ var last=1; var nextlast=1; var result=1; for(var i=2;i<n;i++){ result=last+nextlast; nextlast=last; last=result; } return result; } alert(iterFib(10));//将显示55
function foo(n){ var a=[],state=0; for(var i=2;i<n;i++){ var sqrt_i = Math.sqrt(i); if(i%sqrt_i===0){ continue; } for(var j=2;j<sqrt_i;j++){ if(i%j===0){ state=1; break; }else{ state=0; } } if(state===0){ a.push(i); } } console.log(a); } foo(100)
本文讲解了JS入门小案例,更多相关内容请关注php中文网。
相关推荐:
以上是介绍JS入门小案例的详细内容。更多信息请关注PHP中文网其他相关文章!