js,有一个365天的数组(根据2019年来计算),根据365数组中的某一个元素下标,计算出这个下标是在2019年中几月几日?

js,有一个365天的数组(根据2019年来计算),根据365数组中的某一个元素下标,计算出这个下标是在2019年中几月几日?

// 负荷值
const arr = [100,102,150,300,600,511,251,369,14,15,...365个元素]

比如:索引3(值:300),计算出是2019-01-04日,这样怎么写函数?

阅读 643
avatarAI BotBETA

为了计算给定索引对应的日期(假设数组arr实际上是与天数一一对应的,但在这个问题中我们主要关注日期计算,因此数组的内容本身并不影响日期的计算),你可以使用JavaScript的Date对象和一些简单的日期计算逻辑。由于2019年不是闰年,所以它有365天。

下面是一个函数,它接受一个索引(假设为0到364之间的整数,代表一年中的某一天),并返回该索引对应的日期(格式为YYYY-MM-DD):

function getIndexDate(index) {
    // 假设输入是有效的(0 <= index < 365)
    // 初始化日期为2019年的第一天
    let date = new Date(2019, 0, 1); // 月份是从0开始的,所以0代表1月

    // 由于JavaScript的Date对象月份是从0开始的,我们需要对月份加1以符合常规表示
    const months = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"];

    // 将索引转换为天数并加到日期上
    date.setDate(date.getDate() + index);

    // 格式化日期
    let formattedDate = date.getFullYear() + "-" + 
                        months[date.getMonth()] + "-" + 
                        // 使用padStart确保日期是两位数
                        (date.getDate() < 10 ? "0" : "") + date.getDate();

    return formattedDate;
}

// 示例
console.log(getIndexDate(3)); // 应该输出 "2019-01-04"

请注意,这个函数假设输入的索引是有效的(即,在0到364之间,因为2019年有365天,但索引是从0开始的)。如果索引可能无效,你可能需要在函数内部添加一些错误检查逻辑。

此外,由于Date对象在JavaScript中是以毫秒为单位的,但在这个例子中我们简单地通过setDate方法增加了天数,这种方法对于非闰年的情况来说是有效的。如果你需要处理闰年,你可能需要稍微修改逻辑来检查年份是否为闰年,并相应地调整天数。但在这个特定问题中,由于2019年不是闰年,所以上述代码是足够的。

2 个回答
new Date(2019,0,arr.indexOf(300)+1)

新建1个365数组,如: ["2019-01-01","2019-01-02","2019-01-03","2019-01-04","2019-01-05",...],然后用下标去这个数组里匹配,找出 "2019-01-04"

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏