Skip to content

西暦0年、紀元前0年が生ずる #5

@tsuda-a

Description

@tsuda-a

time-flies/public/js/script.js の function calc() の以下のコード部で、西暦0年、紀元前0年が生ずるケースがある。

if (d >= 0) {
    return "西暦 " + parseInt(d) + " 年"
} else {
    return "紀元前 " + parseInt(-d) + " 年"
}

■再現コード

function getYearString(d) {
    if (d >= 0) {
        return "西暦 " + parseInt(d) + " 年"
    } else {
        return "紀元前 " + parseInt(-d) + " 年"
    }
}

■再現

getYearString(0)
"西暦 0 年"
getYearString(0.1)
"西暦 0 年"
getYearString(-0.1)
"紀元前 0 年"

■修正案

function getYearString(d) {

    y = Math.floor(d)

    if (y >= 1) {
        return "西暦 " + y + " 年"
    } else {
        return "紀元前 " + (Math.abs(y) + 1) + " 年"
    }
}

■修正案の計算結果

getYearString(1)
"西暦 1 年"
getYearString(0.5)
"紀元前 1 年"
getYearString(0)
"紀元前 1 年"
getYearString(-0.5)
"紀元前 2 年"
getYearString(-1)
"紀元前 2 年"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions