算法6 ◉‿◉ 进阶版-算法4
本帖最后由 不二如是 于 2017-5-12 07:26 编辑http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png
按照提示,完成代码,秀秀你的编程能力!
不许看答案,否则打屁屁
程序分析:
在4中程序比较傻,居然把每个月都统计出来了,那还要计算机算个屁。。。这次利用Js特有的“短路逻辑”优化下,你只需要知道:一三五七八十腊,三十一天永不 差。四六九冬三十天,平年二月二十 八。
特殊情况,闰年且输入月份大于 3 时需考虑多加一天。
源代码:
**** Hidden Message *****
○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛
very good
瞧瞧
dd 悄悄 ... kankan dd
看看 看看 <!DOCTYPE html>
<html>
<head>
<title>6</title>
<meta charset="utf-8">
<script type="text/javascript">
// 这里可以用字符串来代替
var yue=new Array(1,3,4,5,6,7,8,9,10,11);
var yued=new Array(1,3,5,7,8,10);
var yuex=new Array(4,6,9,11);
function getday(){
var days=document.getElementById("isda").value.split("-");
var dayd=new Array();
dayd=parseInt(days);
dayd=parseInt(days);
dayd=parseInt(days);
var isp=document.getElementById("isp");
var num=0
num=jishu(dayd,yue,yued,yuex);
if ((dayd%4)==0 && (dayd%100)!=0) {
if (dayd>2) {num=num+1;}}
isp.innerHTML="这一天是这一年的第"+num+"天";
}
function jishu(dayd,yue,yued,yuex){
if (yued.indexOf(dayd)>-1 && dayd!=1){
var mond=getindex(yued,dayd);
var monx=getindex(yue,dayd);
var daynum=(monx-mond)*30+mond*31+dayd+28;}
else if (yuex.indexOf(dayd)>-1 && dayd!=2){
var mond=getindex(yuex,dayd);
var monx=getindex(yue,dayd);
var daynum=(monx-mond)*31+mond*30+dayd+28;}
else if (dayd==2) {
var daynum=31+dayd;}
else if (dayd==1) {
var daynum=dayd;}
else{var daynum=334+dayd}
return daynum;
}
function getindex(shuz,s){
for(var i=0;i<shuz.length;i++){
if(shuz==s){
return i;}}
}
</script>
</head>
<body>
<input type="text" name="" id="isda"><input type="button" name="" value="计算" onclick="getday()">
<p id="isp"></p>
</body>
</html> emm
emm.....在算法4我感觉写的还行,这章的要求也达到了,看看答案 感觉是故意让我写for的,每次看了答案感觉都可以优化{:10_301:} {:10_301:}
var HowManyDays1 = function(month,days){
var days1 = 0;
for(var i=month;i>1;i--){
if(i<=12 && i>=1){
days1+=30;
if(i%2 != 0){days1+=1}
if(i==2){days-=2}
}
}
var HowManyDay = days1+days;
console.log(HowManyDay);
}
HowManyDays1(5,9); 没写对
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>算法6_短路逻辑</title>
</head>
<body>
<script>
var year = parseInt(prompt('年'));
var month = parseInt(prompt('月'));
var day = parseInt(prompt('日'));
var allDay=0;
if(year%4==0&&year%100!=0){
//闰年
month--;
for(var i=1;i<=month;i++){
if(i=1||3||5||7||8||10||12){
allDay += 31;
}else if(i=4||6||9||11){
allDay += 30;
}else if(i==2){
allDay += 29;
}
}
allDay += day;
document.write(allDay);
}else{
//非闰年
month--;
for(var i=1;i<=month;i++){
if(i=1||3||5||7||8||10){
allDay += 31;
}else if(i=4||6||9||11){
allDay += 30;
}else if(i==2){
allDay += 28;
}
}
allDay += day;
document.write(allDay);
}
</script>
</body>
</html>
看看 11 本帖最后由 掵ф伫錠 于 2019-12-10 21:12 编辑
var kaiguan = true;
var count = 0;
while (kaiguan) {
var nianfen = Number(prompt("请输入年份"));
var yuefen = Number(prompt("请输入月份"));
if (!yuefen) {
alert("请输入数字月份")
} else {
while (kaiguan) {
var tianshu = Number(prompt("请输入几号"));
if (!tianshu) {
alert("请输入数字几号")
} else {
break;
}
}
break;
}
}
var month = ;
for (const key in month) {
// console.log("key" + key);
if (key == yuefen) {
break;
} else {
count = count + month;
// console.log(month);
}
}
if (yuefen > 2 && (nianfen % 4 == 0 && nianfen % 100 != 0 || nianfen % 400 == 0))
count++;
alert("第" + nianfen + "年" + "第" + (count + tianshu) + "天"); 123 我都是拿手指头数的
页:
[1]
2