Loading...
dabidabidesh avatar dabidabidesh 7 Точки

Странно пресмятане на годините в Next Day

Препратка към задачата (3-та): https://softuni.bg/trainings/resources/officedocument/49604/basic-syntax-conditional-statements-and-loops-more-exercise-js-fundamentals-may-2020/2832

Джъдж: https://judge.softuni.bg/Contests/Practice/Index/1469#2

Решение без Date: https://pastebin.com/bi4jSdL8

Докато решавах задачата Next Day без обекта Date забелязах, че трябва да се добави 1900 за годините между 0 и 99. Някой знае ли защо това е тъй?

Тагове:
1
Fundamentals Module 10/06/2020 11:30:48
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Докато решавах задачата Next Day без обекта Date забелязах, че трябва да се добави 1900 за годините между 0 и 99. Някой знае ли защо това е тъй?

глупавия отговор ли искаш или причината. По принцип датите имат определено начало в програмните езици и според тях вече самите библиотеки изчисляват. Ти което си направил е хакнато решение и дори не е правилно,просто отговаря на тестовете, ако ти сложа година която е в 1878 или 2100 някъде или нещо подобно и ще те счупя. Това което си направил си нагодил решението към тестовете но то не е bulletproof

0
dabidabidesh avatar dabidabidesh 7 Точки

глупавия отговор ли искаш или причината. По принцип датите имат определено начало в програмните езици и според тях вече самите библиотеки изчисляват. Ти което си направил е хакнато решение и дори не е правилно,просто отговаря на тестовете, ако ти сложа година която е в 1878 или 2100 някъде или нещо подобно и ще те счупя. Това което си направил си нагодил решението към тестовете но то не е bulletproof

Пробвах и с 2-те години, а и с отрицателни. Моето решение дава същия изход като класическото. 

0
dabidabidesh avatar dabidabidesh 7 Точки

Само да допълня, че решението е хакнато, но не само да се изпълняват тестовете на Джъдж, а да дава еднакви резултати с класическото решение.

Според мен решението без корекция на годините в интервала [0, 99]  е правилното, но то пък не работи в Джъдж.

0
MartinBG avatar MartinBG 4803 Точки

Решението на @dabidabidesh е валидно и не е хак. smiley

Не е дадено решение с Date, но на пръв поглед в JS по подразбиране датите се изчисляват спрямо January 1, 1970 00:00:00 UTC и наивно решение с използването на Date би обяснило разликите, които се наблюдават. Разбира се, има начини това да се промени. Ето някоко теми в StackOverflow по въпроса:

Getting JavaScript equivalent of DateTime.MinValue

Minimum and maximum date

0
dabidabidesh avatar dabidabidesh 7 Точки

За мен и двете са грешни, а правилното е без корекцията.

Сега ще гледам лекция и после ще прегледам препратките.

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