AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.11.2017, 23:59   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Slava Chernenko Посмотреть сообщение
Вань, это текущая версия кода или твой фикс?

В 2009 код был таким - как часто бывает кто-то пытался быть слишком смарт:

X++:
static int yearDiff(date d1, date d2)
{
    int daysDiff = d1 - d2 - 1;

    if (daysDiff >= 0)
        return year(num2date(daysDiff)) - 1900;
    else
        return -1 * (year(num2date(-1 * daysDiff)) - 1900);
}
PS: в новом/твоем коде используется недокументированный эффект mkdate() обрезать день месяца из диапазона 29-31 до последнего дня месяца - mkdate(31,2,2017) дает 28/2/2017 хотя по документации должен бы был вернуть 1/1/1900 "If the date is not valid, this method returns a zero date."
в результате код работает конечно намного лучше кода из 2009, но:
- использование недокументированого поведения функции mkdate
- 29 февраля приравнивается к 28 февраля в невисокосных годах, что отличается от старого поведения и к тому же вопрос использования 28 февраля vs 1 марта как даты соответствующей 29 февраля в невисокосных годах по-разному урегулирован в разных странах https://en.wikipedia.org/wiki/February_29
Это текущий код.
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:27.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.