Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2009, 15:07   #1
kissel
Новичок
Джуниор
 
Регистрация: 15.03.2009
Сообщений: 2
По умолчанию С++: найти число дней между 2 датами

Мог бы заказать все задания, но это один из немногих предметов в моём обучении, в котором хотелось бы разобраться хоть чуть чуть самому. На мои попытки определить число дней в месяце и високосный год или нет, рецензент (существо женского пола , кстати) прислала следующее:
Цитата:
Я бы предложила подсчитывать разницу в днях между двумя заданными датами, используя следующие функции, беря за конечную дату текущее системное:
#include <dos.h>
getdate(&curr_date); - получения текущей даты
gettime(&tim); - получение текущего времени
Или же задавать.
int mm[] = {31,28,31,30,31,30,31,31,30,31,30,3 1}; - забить массив дней по месяца, при этом проверяя год високосный или нет.
Год получаем простым вычитанием.
int m3=(12-m1)+m2+12*(y-1); разница месяцев подсчитываем, m1-начальный месяц, m2 –текущий месяц, y1-начальный год.
Дни подсчитываем int d=doo+po+365*(y-1);
До и после дни подсчитываем с учетом, сколько дней в месяце.
for(int i=m1-1; i<12; i++)
{
doo=doo+mm[i];
}
doo=doo-d1+1;
for(int i=0; i<m2; i++)
{
po=po+mm[i];
}
po=po-(mm[m2+1]-d2);
Можно также подсчитать, сколько минут и секунд.
Я ни черта не понял, понял , что ход моих мыслей был куда то не туда совсем. Я хотел вычислять число между 2 произвольными датами, вводимыми с клавиатуры. Но это не принципиально. Кто бы разжевал, что надо делать?

Последний раз редактировалось kissel; 15.03.2009 в 15:17.
kissel вне форума Ответить с цитированием
Старый 15.03.2009, 15:52   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

я не знаю, куда был ход Ваших мыслей, но Вам дали практически ГОТОВУЮ программу... на руках надо носить таких рецензентов!!!

проверить высокосный ли год:
(год нацело делится на 4) и
((Год не делится на 100) или (Год делится на 400))
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.03.2009, 17:18   #3
kissel
Новичок
Джуниор
 
Регистрация: 15.03.2009
Сообщений: 2
По умолчанию

да я бы поносил, была бы такая возможность...
но чего то я не догоняю и ведь это только первая работа, самая простая, очевидно, а признаться женщине, что я такой тупой - выше моих сил.
А високосность так проверял:
Код:
int main()
{
    int i;
    for (i=date[0];i>=0;i-=4)              
          date[0]=i;
                  
cout << date[0]<< endl;
if (date[0]) cout << " this year have 365 days "<< endl;
else cout << " this year have 366 days "<< endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}
Но не прикрутил к главной программе. Перемудрил может чего? у меня дата в виде массива из трёх чисел вводилась...
kissel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан файл с различными датами.в дате число,месяц и год.Найти весеннюю дату. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 1 26.12.2008 15:20
Как задать интервал между датами в фильтре Леон Microsoft Office Access 2 22.10.2008 11:16
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
Разница между датами deenka БД в Delphi 3 31.01.2008 13:21
число дней в месяце конкретного года (Excel) Andrew_R Microsoft Office Excel 2 28.10.2007 21:22