Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Breyanova91 avatar Breyanova91 9 Точки

Задача 3.Next Day от More Exercises: Basic Syntax, Conditional Statements and Loops

Някой може ли да ми обясни как се използва метода Date() за тази задача?

Write a JS function that calculates the date of the next day by given year, month and day.

The input comes as three number parameters. The first element is the year, the second is the month and the third is the day.

The output should be returned as a result of your function.

Examples

Input

Output

2016, 9, 30

2016-10-1

Тагове:
0
JavaScript Fundamentals
willystyle avatar willystyle 2472 Точки

Ето ти 3 варианта на решение, за да видиш различни техники за създаване, обработване и парсване на дати:

function nextDay(year, month, day) {
    let nextDay = new Date(year, month - 1, day + 1);
    let newYear = nextDay.getFullYear();
    let newMonth = nextDay.getMonth() + 1;
    let newDate = nextDay.getDate();
    console.log(`${newYear}-${newMonth}-${newDate}`);
}

function nextDay2(year, month, day) {
    let date = new Date(year, month - 1, day);
    date.setDate(date.getDate() + 1);
    let newYear = date.getFullYear();
    let newMonth = date.getMonth() + 1;
    let newDate = date.getDate();
    console.log(`${newYear}-${newMonth}-${newDate}`);
}

function nextDay3(year, month, day) {
    if (year <= 99) year += 1900;
    let date = new Date(`${year}-${month}-${day} 12:00`);
    date.setDate(date.getDate() + 1);
    let newDate = date.toISOString().split('T')[0];
    [yyyy, mm, dd] = newDate.split('-');
    console.log(`${yyyy}-${removeLeadingZeroe(mm)}-${removeLeadingZeroe(dd)}`);

    function removeLeadingZeroe (str) {
        return str.replace(/^0+/, '');
    }
}

 

0
Breyanova91 avatar Breyanova91 9 Точки

Много благодаря. ще ги разгледам. :)

1
Breyanova91 avatar Breyanova91 9 Точки

Здрасти - ако е възможно и имаш желание за комуникация и за обяснение, бих се радвала да ми го разясниш... защото чета и го дебъгвам ама не разбирам изцяло какво се случва

1
willystyle avatar willystyle 2472 Точки

Едва ли бих бил по-изчерпателен от документацията:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
виж в Date() конструктора, който поддържа няколко варианта за създаване на обект от клас дата.
После създадения обект има методи, например за добавяне на дни date.setDate(date.getDate() + days) или за взимане на година .getFullYear() или за взимане на месец .getMonth() (! тук особеното е, че месеците са изместени с един напред от 0 до 11, това е поради исторически причини) ... и т.н.
btw в реален проект може би никога няма да ти се наложи да работиш с Date в JS, всички импортват една библиотека moment.js която има много добра документация, супер лесно се използва и те спасява от дребните тънкости за работа с дати в JS, но при всички положения е добре да имаш обща представа.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.