日期:2014-05-16 浏览次数:20401 次
<html> <head> <script> var yearsday=0,monthsday=0,zdays=0,year,day,month,m=0; var year=parseInt(prompt("请输入年份")); var month=parseInt(prompt("请输入月份")); var day=parseInt(prompt("请输入天数")); var td = new Date(); var bd = new Date(year,month-1,day); var dif = td - bd; var days = Math.ceil(dif / (24 * 60 *60 * 1000)) alert(days) </script> </head> </html>
------解决方案--------------------
这个程序简直漏洞百出,
计算逻辑也不对,
用1楼的方法就挺好。
稍微改了改,能计算个大概:
var yearsday=0,monthsday=0,zdays=0,year,day,month,m=0; var year=parseInt(prompt("请输入年份")); var month=parseInt(prompt("请输入月份")); var date=parseInt(prompt("请输入天数")); /*************************************************/ for(;year<2010;year++) { if(year%4==0&&year%100!=0||year%400==0) { day=366; } else { day=365; } yearsday=yearsday+day; } /*************************************************/ for(var m=1;m<month;m++)//月份从1月份算起,算到输入的前一个月 { switch(m)//要判断m啊,判断month做什么??大哥 { case 1: case 3: case 5: case 7: case 8: case 10: case 12:days=31; break; case 4: case 6: case 9: case 11:days=30; break; /*************************************************/ case 2: if(year%4==0&&year%100!=0||year%400==0) {days=29;} else {days=28;} break;//加个这个 default:alert("请输入正确月份"); break; } /*************************************************/ monthsday = monthsday+days; } zdays=yearsday-(monthsday+date);//因为循环算年数的时候已经将所有天数的算上了,所以要减去出生那年你没有活的日子 alert(zdays);