![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 21.07.2011
Сообщений: 4
|
![]()
Задачка простенькая, поэтому решения не прошу, а только намека на правильное направление . Известны дата рождения (d1) и системная дата (d2). Скидка действует в день рождения и в течение двух недель после. Если d1=d2 то всё понятно....... Но вот эти две недели....Чем то задним чувствую : d2-14дней < d1 < d2+14дней и все в порядке, но как привязать расчет к количеству дней в месяце? И ещё предыдущий, текущий и следующий месяцы?
|
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1) какой язык программирования?
2) в тексте написано: "Скидка действует в день рождения и в течение двух недель после." Никаких -14 дней, только плюс. 3) Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 21.07.2011
Сообщений: 4
|
![]()
Большое спасибо за код. Язык VС++. Только меня смущает (d2-d1)<=14. Например, (если d2 = 01.07) а (d1 = 30.06). d2(systime.wDay, systime.wMonth). Пытаюсь узнать как работает DataTime в VC++.
Последний раз редактировалось slavikus; 21.07.2011 в 20:55. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
оп-с.. я не знаю ни С, ни С++, ни, тем более MS Visual C++....
я бы мог написать Вам решение на C#, но, боюсь, оно Вам окажется бесполезным.. извините, что не могу помочь конкретным кусочком кода! там бы я копал в сторону: Код:
Код:
значит так. 1) Цитата:
2) если не прокатит, то попробуйте поискать, есть ли у Вас в вашем VC++ функция DateDiff()... 3) обалденная статья, где рассказывается, как внутри устроены типы данных Дата и Время тут: Date and Time in C++ посмотрите примеры (исходники) тут: Calculating Duration Between Two Dates in Years, Months and Days - CodeProject и тут Calculate Difference Between Two Dates in Day, Week, Month, and Year Parts - CodeProject может найдёте там что-то полезное.. |
|
![]() |
![]() |
![]() |
#5 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
ТС, на будущее VC++ это среда программирования, часть MSVS(MS Visual Studio)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 | |
Новичок
Джуниор
Регистрация: 21.07.2011
Сообщений: 4
|
![]() Цитата:
int(дд) == (systime.wDay) int (мм) == (systime.wMonth). Нашел формулу разности двух дат, правда пока не проверял как она работает, да и если честно - неохота изобретать велосипед. |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,378
|
![]()
Можно посмотреть и в этом направлении: преобразование даты в юлианскую и обратно. Юлианские даты - это просто порядковый номер дня с 1900 г. В этом случае не потребуется сравнивать отдельно дни и месяцы.
Как-то так, ...
|
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 21.07.2011
Сообщений: 4
|
![]()
Может вопрос не по теме, но меня, как новичка, волнует вопрос: - где всё таки грань между изобретением "своего" и использованием "чужого"? Мы ведь не делим катет на гипотенузу, когда например пользуемся функцией sin()?
|
![]() |
![]() |
![]() |
#10 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Если в данном языке программирования/библиотеках есть нужная функция/нужный тип данных - используете её. Если нет (или, что бывает, к сожалению, достаточно часто - она есть, но Вы про неё не знаете) - тогда используете "суррогат" - т.е. пишете реализацию самостоятельно. И никаких "граней" ![]() В принципе рост программиста как профессионала и заключается в знаниях, опыте и умении использовать ВСЕ возможности, заложенные в используемом инструменте. [АНТИОФФТОП] Вы задачу свою решили-то?.. Цитата:
Последний раз редактировалось Serge_Bliznykov; 23.07.2011 в 09:48. |
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выполнение действия через промежуток времени | chingiz | Общие вопросы Delphi | 37 | 03.10.2012 11:33 |
как задать диапазон времени | Dmitrys | Microsoft Office Excel | 3 | 11.02.2011 16:51 |
Счетчик обратного действия в режиме реального времени | Панчо | PHP | 1 | 20.09.2010 20:37 |
Вычитание дат(дата-дата=кол.дней) | zallza | Общие вопросы Delphi | 1 | 31.05.2010 22:50 |
диапазон времени | chekanoff | БД в Delphi | 34 | 02.03.2008 01:28 |