Javascript 困难的功能是一年

Javascript 困难的功能是一年,javascript,arrays,function,date,numbers,Javascript,Arrays,Function,Date,Numbers,我应该写一个函数isLeapYear.t,它应该接受毫秒数或日期字符串作为参数。此函数检查传递的参数是否为闰年。如果是闰年,函数应返回字符串—“年”是闰年,如果不是,则应返回字符串—“年”不是闰年。我应该使用日期对象。我知道这工作不是我想要的 if (year % 400 == 0) leap = true; else if (year % 100 == 0) leap = false; else if (year % 4 == 0) leap = true; else leap

我应该写一个函数isLeapYear.t,它应该接受毫秒数或日期字符串作为参数。此函数检查传递的参数是否为闰年。如果是闰年,函数应返回字符串—“年”是闰年,如果不是,则应返回字符串—“年”不是闰年。我应该使用日期对象。我知道这工作不是我想要的

if (year % 400 == 0)
  leap = true;
else if (year % 100 == 0)
  leap = false;
else if (year % 4 == 0)
  leap = true;
else
  leap = false;

For Example isLeapYear('2020-01-01 00:00:00'); // =>  ‘2020 is a leap year’
isLeapYear('2020-01-01 00:00:00777'); // =>  ‘Invalid Date’
isLeapYear('2021-01-15 13:00:00');  // =>  ‘2021 is not a leap year’
isLeapYear('2200-01-15 13:00:00'); // =>  ‘2200 is not a leap year’
isLeapYear(1213131313135465656654564646542132132131); // =>  ‘Invalid Date’
isLeapYear(1213131313); ); // => ‘1970 is not a leap year’

我假设你想要JS,尽管在《上帝知道什么》中有这样的例子

常量isLeapYearHelper=year=>year%400==0?正确:年份%100==0?错误:年份%4==0?对:错 const isLeapYear=str=>{ const date=new Datestr 常量isValid=!isNaNdate.getTime 返回是否有效?isLeapYearHelperdate.getFullYear?`${date.getFullYear}是闰年`:`${date.getFullYear}不是闰年`:`无效日期' } 控制台。logisLeapYear'2020-01-01 00:00:00777' 控制台。LogisleAppyear'2021-01-15 13:00:00' 控制台。登录年份'2200-01-15 13:00:00' 控制台。LogisleAppyear'2020-01-15 13:00:00' console.logisleapyear121313546566545646542132131
console.logisleapyear12131313您可以这样编写函数

function isLeapYear(date){
  let parsedDate = null
  let leap = null
  let year = null
  
  if(isNaN(date)){
     parsedDate = new Date(Date.parse(date))
  } else{
     parsedDate = new Date(date)
  }
  if(isNaN(parsedDate.getTime())){
    parsedDate = "Invalid Date"
  } else{
    year = parsedDate.getFullYear();
    if (year % 400 == 0)
        leap = true;
    else if (year % 100 == 0)
        leap = false;
    else if (year % 4 == 0)
        leap = true;
    else
        leap = false;
  }
  
  let output = "Invalid Date";
  if(year){
    output = leap ? `${year} is a leap year` : `${year} is not a leap year`;
  }
  console.log(output);
}


isLeapYear("2021-01-15 13:00:00")

欢迎来到堆栈溢出!我知道这工作不是我想要的什么方式?一旦你回答了这个问题,你的下一个任务就是努力解决这个问题。请拿着你的徽章!通读全文,尤其是你在这里的最佳选择是做你的研究,对于相关的话题,等等,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会很乐意提供帮助。您的问题似乎将字符串转换为日期,请参阅并解释,直到第5版规范发布,Date.parse方法完全依赖于实现……在第5版规范中,添加了该要求以支持简化且稍有错误的ISO-8601。另请参见JavaScript中的有效日期时间字符串?。但是除此之外,没有要求Date.parse/new Datestring应该接受什么,除了他们必须接受任何DatetoString输出之外……因为据说日期是作为示例给出的,所以它可以正常工作。但是如果你想解析所有格式,我相信我们需要提供日期字符串格式。OP的问题似乎是用内置的解析器解析字符串,但这只是基于查看示例输入和输出,因为没有显示解析代码。如果date是字符串,则在new DateDate.parsedate中使用date.parse是多余的,new DateDate是等效的。