鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 不二如是

[每日一练] 算法4 ◉‿◉ 输入某年某月某日,判断这一天是这一年的第几天?

[复制链接]
发表于 2018-9-23 21:17:54 | 显示全部楼层
支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-8 11:53:06 | 显示全部楼层
本帖最后由 凌乱大帅比 于 2018-10-8 14:12 编辑
  1. var HowManyDay = function(month,day){
  2.         var month_day,how_many_day,s=0;
  3.         var month_days = [];
  4.        
  5.         if(month<=12 && month>=1 && day<=31 && day>=1){        //判断输入日期是否合法
  6.                 if(month==1){how_many_day = day}
  7.                 else if(month==2){how_many_day = 31+day}
  8.                 else if(month>=3){
  9.                         for(var i=1;i<month;i++){                        //循环存入每月天数数组
  10.                                 if(i==2){
  11.                                         month_day = 28;
  12.                                         month_days.push(month_day);
  13.                                 }else if(i%2 == 0){
  14.                                         month_day = 30;
  15.                                         month_days.push(month_day);
  16.                                 }else {
  17.                                         month_day = 31
  18.                                         month_days.push(month_day);
  19.                                 }
  20.                         }
  21.                         for(var i=0;i<month_days.length;i++){                //计算所有的天数
  22.                                 s+=month_days[i];
  23.                         }
  24.                         console.log(s);
  25.                         how_many_day = s+day;
  26.                 }
  27.                
  28.         console.log(month+'月'+day+'日是一年中的第'+how_many_day+'天');
  29.         }else{console.log('请输入正常的日期')}
  30. }

  31. HowManyDay(5,9);
复制代码


没写闰月的判断,目前就这样吧,奇数30天,偶数31天,2月28天

我还在发愁for中的if哪个排在第一个优化性能,看了版主大大的程序,我决定不纠结了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 00:32:27 | 显示全部楼层
<!DOCTYPE html>
<html>
        <head>
                <meta charset="utf-8" />
                <meta name="viewport" content="width=device-width, initial-scale=1">
                <title>判断某年月日为该年的第几天</title>
        </head>
        <body>
                输入(20181010):<input type="text" id="inputDay" />
                结果:<input type="text" id="outputDay" />
                <input type="button" value="计算" onclick="jisuan();" />
        </body>
        <script>
                function jisuan(){
                        var inputDay = document.getElementById('inputDay').value;
                        var year = parseInt(inputDay.slice(0,4));
                        var mouth = parseInt(inputDay.slice(4,6));
                        var day = parseInt(inputDay.slice(6,8));
                        var allDate=0;
                        if(year%4==0&&year%100!=0){//闰年
                                if(mouth==1){
                                        allDate = day;
                                }else if(mouth==2){
                                        allDate = 31+day;
                                }else if(mouth==3){
                                        allDate = 31+29+day;
                                }else if(mouth==4){
                                        allDate = 31+29+31+day;
                                }else if(mouth==5){
                                        allDate = 31+29+31+30+day;
                                }else if(mouth==6){
                                        allDate = 31+29+31+30+31+day;
                                }else if(mouth==7){
                                        allDate = 31+29+31+30+31+30+day;
                                }else if(mouth==8){
                                        allDate = 31+29+31+30+31+30+31+day;
                                }else if(mouth==9){
                                        allDate = 31+29+31+30+31+30+31+31+day;
                                }else if(mouth==10){
                                        allDate = 31+29+31+30+31+30+31+31+30+day;
                                }else if(mouth==11){
                                        allDate = 31+29+31+30+31+30+31+31+30+31+day;
                                }else if(mouth==12){
                                        allDate = 31+29+31+30+31+30+31+31+30+31+30+day;
                                }
                        }else{
                                if(mouth==1){
                                        allDate = day;
                                }else if(mouth==2){
                                        allDate = 31+day;
                                }else if(mouth==3){
                                        allDate = 31+28+day;
                                }else if(mouth==4){
                                        allDate = 31+28+31+day;
                                }else if(mouth==5){
                                        allDate = 31+28+31+30+day;
                                }else if(mouth==6){
                                        allDate = 31+28+31+30+31+day;
                                }else if(mouth==7){
                                        allDate = 31+28+31+30+31+30+day;
                                }else if(mouth==8){
                                        allDate = 31+28+31+30+31+30+31+day;
                                }else if(mouth==9){
                                        allDate = 31+28+31+30+31+30+31+31+day;
                                }else if(mouth==10){
                                        allDate = 31+28+31+30+31+30+31+31+30+day;
                                }else if(mouth==11){
                                        allDate = 31+28+31+30+31+30+31+31+30+31+day;
                                }else if(mouth==12){
                                        allDate = 31+28+31+30+31+30+31+31+30+31+30+day;
                                }
                        }
                        document.getElementById('outputDay').value = allDate;
                }
        </script>
</html>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 14:03:34 | 显示全部楼层
11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-20 18:14:40 | 显示全部楼层
kankan
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-21 09:50:05 | 显示全部楼层
54666666666666666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-21 09:58:20 | 显示全部楼层
不错不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-19 11:16:06 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-28 14:25:42 | 显示全部楼层
不会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-22 19:48:25 | 显示全部楼层
  1.         var i = prompt("输入年月日(例 2019-1-1):");
  2.         var arr = i.split("-");
  3.         var days = [31,28,31,30,31,30,31,31,30,31,30,31];
  4.         var day = 0;
  5.         for (var j=0; j<Number(arr[1])-1; j++){
  6.                 day += Number(days[j]);
  7.         }
  8.         if (arr[0]%4 != 0 || arr[0]%400 != 0){
  9.                 day += Number(arr[2]);
  10.         }
  11.         else{
  12.                 day += (Number(arr[2])+1);
  13.         }
  14.         alert("这一天是这一年的第" + day + "天");
复制代码

没看效果图,年月日一起输入了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-27 08:05:37 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-31 08:06:28 | 显示全部楼层
感谢分享,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-17 20:17:10 From FishC Mobile | 显示全部楼层
闰年就错了,不知道干嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-9 20:54:20 | 显示全部楼层
本帖最后由 掵ф伫錠 于 2019-12-9 20:57 编辑
  1.         var kaiguan = true;
  2.         var count = 0;
  3.         while (kaiguan) {
  4.             var yuefen = Number(prompt("请输入月份"));
  5.             if (!yuefen) {
  6.                 alert("请输入数字月份")
  7.             } else {
  8.                 while (kaiguan) {
  9.                     var tianshu = Number(prompt("请输入几号"));
  10.                     if (!tianshu) {
  11.                         alert("请输入数字几号")
  12.                     } else {
  13.                         break;
  14.                     }
  15.                 }
  16.                 break;
  17.             }
  18.         }
  19.         var month = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  20.         for (const key in month) {
  21.             if (key == yuefen) {
  22.                 break;
  23.             } else {
  24.                 count = count + month[key] ;
  25.             }
  26.         }
  27.         alert("第" + (count + tianshu) + "天");
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-8 18:14:26 | 显示全部楼层
function getDays(year,month,day) {
    let arr = [31,28,31,30,31,30,31,31,30,31,30,31];

    if (year % 4 == 0 && year % 100 != 0) {
        arr = [31,29,31,30,31,30,31,31,30,31,30,31];
    }

    for (let i = 0; i <= month-2; i++) {
        day += arr[i];
    }
    return day;

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 15:41:25 | 显示全部楼层
学一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-16 14:45:20 | 显示全部楼层
康康
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-29 14:12:54 | 显示全部楼层
var years = prompt("请输入年份(如:2000):");
var month = prompt("请输入月份(如:6):");
var day = prompt("请输入日期(如:20):");
var days = 0;


for(i=1;i<month;i++){
        if(i==4||i==6||i==9||i==11 )days+=30;
        if(i==2){
            if(!(typeof(years/400)=="int"||(typeof(years/4)=="int"&&typeof(years/100)!="int")))days+=28;
            else{days+=29;}
        }
        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)days+=31;
    }
days+=parseInt(day);
confirm(month+"月 "+day+"日 是"+years+"年的第"+days+"天!");
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 13:18:45 | 显示全部楼层
我看看有没有简单点的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-12 22:26:30 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-23 20:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表