|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.07.2011, 19:10 | #1 |
Новичок
Джуниор
Регистрация: 21.07.2011
Сообщений: 4
|
диапазон времени действия(сист дата+-14 дней)
Задачка простенькая, поэтому решения не прошу, а только намека на правильное направление . Известны дата рождения (d1) и системная дата (d2). Скидка действует в день рождения и в течение двух недель после. Если d1=d2 то всё понятно....... Но вот эти две недели....Чем то задним чувствую : d2-14дней < d1 < d2+14дней и все в порядке, но как привязать расчет к количеству дней в месяце? И ещё предыдущий, текущий и следующий месяцы?
|
21.07.2011, 19:23 | #2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) какой язык программирования?
2) в тексте написано: "Скидка действует в день рождения и в течение двух недель после." Никаких -14 дней, только плюс. 3) Цитата:
Код:
|
|
21.07.2011, 20:43 | #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. |
21.07.2011, 22:00 | #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 может найдёте там что-то полезное.. |
|
21.07.2011, 22:25 | #5 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
21.07.2011, 22:28 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ТС, на будущее VC++ это среда программирования, часть MSVS(MS Visual Studio)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
22.07.2011, 22:09 | #7 | |
Новичок
Джуниор
Регистрация: 21.07.2011
Сообщений: 4
|
Цитата:
int(дд) == (systime.wDay) int (мм) == (systime.wMonth). Нашел формулу разности двух дат, правда пока не проверял как она работает, да и если честно - неохота изобретать велосипед. |
|
22.07.2011, 23:14 | #8 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,306
|
Можно посмотреть и в этом направлении: преобразование даты в юлианскую и обратно. Юлианские даты - это просто порядковый номер дня с 1900 г. В этом случае не потребуется сравнивать отдельно дни и месяцы.
Как-то так, ...
|
23.07.2011, 00:52 | #9 |
Новичок
Джуниор
Регистрация: 21.07.2011
Сообщений: 4
|
Может вопрос не по теме, но меня, как новичка, волнует вопрос: - где всё таки грань между изобретением "своего" и использованием "чужого"? Мы ведь не делим катет на гипотенузу, когда например пользуемся функцией sin()?
|
23.07.2011, 09:45 | #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 |