Форум программистов, компьютерный форум CyberForum.ru

Найти разницу в днях - C++

Восстановить пароль Регистрация
 
Eko20
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 54
26.11.2013, 02:26     Найти разницу в днях #1
Найти разницу в днях между двумя заданными датами. Даты вводить с клавиатуры.
Не знаю как написать,возникают вопросы , а как быть с высокосными годами, разным количеством дней в месяцах?
И как рассчитывать разницу в днях, переводить введенную дату в часы? а потом обратно в дни? или как?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 02:26     Найти разницу в днях
Посмотрите здесь:

C++ Найти разницу между наименьшей и наибольшей зарплатой
Подсчитать разницу в днях между 2 датами C++
Вычислить разницу в днях между двумя заданными датами C++
C++ Найти разницу между количеством положительных и отрицательных элементов
Классы. Найти произведение и разницу компонентов классов C++
Найти величину интервала времени в годах, месяцах и днях C++
Как найти разницу двух массивов? C++
C++ Найти разницу матриц

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
26.11.2013, 08:10     Найти разницу в днях #2
как быть... учитывать да и всё её, эту разницу
вот те мои старые "детские" функции и тест
здесь все считается просто циклами
а можно, конечно, метки времени использовать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
int LeapYear (int year) { //високосный ли год
 if ((year%4==0) && (year%100!=0) || (year%400==0)) return 1;
 else return 0;
}
 
int KolDays (int d1,int m1,int d2,int m2,int y) { //кол-во дней в пределах года
 int i,s;
 int mondays[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
 if (LeapYear (y)==1) mondays[1]=29;
 if (m1==m2) s=d2-d1;
 else {
  s=mondays[m1-1]-d1+1;
  for (i=m1+1;i<m2;i++) s+=mondays[i-1];
  s+=(d2-1);
 }
 return s;
}
 
int DaysBetween (int day1,int mon1,int year1,int day2,int mon2,int year2) { //дней между датами
 int i,f;
 if (year1==year2) f=KolDays (day1,mon1,day2,mon2,year1);
 else {
  f=KolDays (day1,mon1,31,12,year1)+1;
  for (i=year1+1; i<year2; i++) {
   f+=365;
   if (LeapYear (i)) f++;
  }
  f+=(KolDays(1,1,day2,mon2,year2));
 }
 return f;
}
 
#include <iostream>
int main () {
 int d1=1,m1=1,y1=1970;
 int d2=26,m2=11,y2=2013;
 cout << DaysBetween (d1,m1,y1,d2,m2,y2);
 cin.get();
}
с тебя "+" и дописка проги с выкладкой сюда
Yandex
Объявления
26.11.2013, 08:10     Найти разницу в днях
Ответ Создать тему
Опции темы

Текущее время: 21:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru