从一年中获得世纪

时间:2018-08-26 20:53:06

标签: javascript algorithm

因此,我有一个必须回到世纪的问题。我已经编写了代码,但是它失败了很多年,例如1700或1800。 我的问题是,如何确定一个特殊的年份,如果年份是固定的,例如2000,则只能将年份除以100? 我已经尝试过

element.slice(-2);

但是没有用。 这是我当前的代码

function centuryFromYear(year) {
    var x = Math.floor(year/100) + 1;
    return x; 
}

8 个答案:

答案 0 :(得分:4)

首先从year中减去1:

function centuryFromYear(year) {
    return Math.floor((year-1)/100) + 1;
}

示例:

centuryFromYear(1999) // 20
centuryFromYear(2000) // 20
centuryFromYear(2001) // 21

答案 1 :(得分:2)

最后两位数字:

let myNumber = 2000;
console.log(myNumber.toString().slice(-2))

前两位数字:

let myNumber = 2000;
console.log(myNumber.toString().slice(0,2))

最终功能:

function centuryFromYear(year) {
  if(typeof year == 'string')
    if(year.toString().slice(-2) == '00')
      return year.toString().slice(0,2);
    else
      return (Math.floor(+year/100) +1).toString();
  else if(typeof year == 'number')
    return Math.floor((year-1)/100) + 1;
  else
    return undefined;
} 
    
console.log(centuryFromYear("2000"));
console.log(centuryFromYear("1901"));
console.log(centuryFromYear("2002"));
console.log(centuryFromYear(2002));
console.log(centuryFromYear(1999));
console.log(centuryFromYear(2000));

答案 2 :(得分:2)

您可以将其最短表示为:

return Math.ceil(year/100);

答案 3 :(得分:1)

您只需执行以下操作即可检查该特殊情况:

function centuryFromYear(year) {
    var x = Math.floor(year / 100);
    if (year % 100 === 0)
        return x;
    else
        return x + 1;
}

答案 4 :(得分:1)

function centuryFromYear(year) {
var testInt = Number.isInteger(year/100);
    if (year >= 1 && testInt == true ) {
        return Math.floor(year/100);
    }
    else if ( year >= 1 && testInt == false) {
        return Math.floor(year/100) + 1;
    }

}

答案 5 :(得分:0)

在函数中添加一个额外的检查项,以检查年份是否为2000或1800之类的四舍五入的世纪。

//1.This code use the EWS mimeContent(the message on bytes - eml format)
//2.Create Independentsoft message object 
//Independentsoft.Msg.Message constractor do the convert by
// making an msg object from an eml object.
//3. save the msg file.
Independentsoft.Email.Mime.Message mimeMessage = new Independentsoft.Email.Mime.Message(emailMessage.MimeContent.Content);
Independentsoft.Msg.Message msgMessage = Independentsoft.Msg.Message(mimeMessage);
using (MemoryStream memStream = new MemoryStream(emailMessage.MimeContent.Content.Length))
{
    Directory.CreateDirectory(TempMsgDirectory);    
    msgMessage.Save(TempMsgDirectory + "mail.msg", true);
}

答案 6 :(得分:0)

我可能会这样做:

<img *ngFor="let path of paths" [cacheSrc]="path"/>

答案 7 :(得分:0)

首先从年份中减去一年,以免每100年陷入混乱。

int centuryFromYear(int year) {
int century = Math.floor((year-1) / 100) + 1;
return century;}