跳转至

2758. 下一天 🔒

题目描述

请你编写一个有关日期对象的方法,使得任何日期对象都可以调用 date.nextDay() 方法,然后返回调用日期对象的下一天,格式为 YYYY-MM-DD 。

 

示例 1:

输入:date = "2014-06-20"
输出:"2014-06-21"
解释:
const date = new Date("2014-06-20");
date.nextDay(); // "2014-06-21"

示例 2:

输入:date = "2017-10-31"
输出:"2017-11-01"
解释:日期 2017-10-31 的下一天是 2017-11-01.

 

Constraints:

  • new Date(date) 是一个有效的日期对象

解法

方法一

思考

\(Date\) 增加返回次日 \(YYYY\text{-}MM\text{-}DD\) 的方法。手写闰年与月份天数容易出错,标准库已处理进位。

复制当前时间戳后 \(setDate(getDate()+1)\),再取 ISO 字符串的日期部分,避免改动原对象。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
declare global {
    interface Date {
        nextDay(): string;
    }
}

Date.prototype.nextDay = function () {
    const date = new Date(this.valueOf());
    date.setDate(date.getDate() + 1);
    return date.toISOString().slice(0, 10);
};

/**
 * const date = new Date("2014-06-20");
 * date.nextDay(); // "2014-06-21"
 */

评论