Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
4 / 3 / 1
Регистрация: 07.11.2016
Сообщений: 36

Вычислить продолжительность жизни

24.03.2018, 23:33. Показов 2013. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Например я имею две даты 1. 25.03.1954
2. 23.11.2017
И мне нужно вычислить продолжительность жизни.
Как мне это сделать, и какого типа переменной должны быть эти даты?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2018, 23:33
Ответы с готовыми решениями:

Определить, через сколько лет средняя продолжительность жизни превысит 60 лет
Средняя продолжительность жизни населения региона равна А лет. Ожидается ее ежегодный рост на р % вследствие улучшения медицинского ...

Продолжительность жизни процессора при высоких температурах
как долго проживет процессор при работе в нагрузке до 85 градусов. в одних статьях пишут что срок жизни сокращается иногда значительно....

Малая продолжительность жизни Mini-ITX материнок. Миф или Реальность?
Гуляет среди знакомых миф о том что Mini-ITX долго не живет. Мол делают их слабыми, ибо мало места. (хотя можно у производителей найти...

13
24.03.2018, 23:36

Не по теме:


Покойся с миром :(

0
25.03.2018, 10:04

Не по теме:

Цитата Сообщение от New man Посмотреть сообщение
Покойся с миром
Всего 62. :(

0
25.03.2018, 10:17

Не по теме:

My3oH4ik, уже поздно вычислять :(

0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
25.03.2018, 10:19
1. Учись правильно задавать вопросы, твой вопрос звучит как "вычесть две даты".
2. Поищи по форуму вычитание дат, решений полно.
0
 Аватар для Recrut_rf
388 / 334 / 65
Регистрация: 14.10.2014
Сообщений: 1,441
25.03.2018, 10:25
Цитата Сообщение от My3oH4ik Посмотреть сообщение
и какого типа переменной должны быть эти даты
К примеру можно создать свой тип Дата и сделать соответствующие методы для него
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
25.03.2018, 10:48
Лучший ответ Сообщение было отмечено My3oH4ik как решение

Решение

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <bits/stdc++.h>
using namespace std;
struct date{
    int dd;
    int mm;
    int yyyy;
};
void read_date(date &data)
{
    string s;
    cin>>s;
    //dd.mm.gggg
    data.dd = (s[0] - 48) * 10 + s[1] - 48;
    //s[2] == '.'
    data.mm = (s[3] - 48) * 10 + s[4] - 48;
    //s[5] == '.'
    int k = s.length() - 4;
    int gggg = 0;
    while(k < s.length())
    {
        gggg += s[k] - 48;
        k++;
        if (k < s.length()) gggg*=10;
    }
    data.yyyy = gggg;
}
void print_date(date a)//bonus
{
    cout<<a.dd<<"."<<a.mm<<"."<<a.yyyy<<endl;
}
int WhenIDie(date start, date end)
{
    int a = (14 - start.mm) / 12;
    int y = start.yyyy + 4800 - a;
    int m = start.mm + 12 * a - 3;
    int d1 = start.dd + ((153 * m + 2) / 5) + 365 * y + y / 4 - y / 100  + y / 400 - 32045;
    a = (14 - end.mm) / 12;
    y = end.yyyy + 4800 - a;
    m = end.mm + 12 * a - 3;
    int d2 = end.dd + ((153 * m + 2) / 5) + 365 * y + y / 4 - y / 100  + y / 400- 32045;
    return d2 - d1;
}
int main()
{
    date start;
    date end;
    read_date(start);
    read_date(end);
//  print_date(start);
    //print_date(end);
    cout<<WhenIDie(start, end);
    return 0;
}
1
Заблокирован
25.03.2018, 11:33
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <conio.h>
class data
{
int day;
int month;
int year;
int days;
int init()
{
days=0;
days=year*365+month*30+day;
}
int result()
{
year=days/365;//year типа int, поэтому всё сводится до целого.
month=year/12;//определяем количество месяцев в целом числе годов
month=month*30;//определяем количество дней в целом числе годов
month=days-month;//определяем количество дней в не целом годе
month=month/30;//делим количество на 30, получаем количество месяцев
day=year/12;
day=day*30;
day=day+month*30;//определяем количество дней в целых годах и месяцах.
day=days-day;//все, теперь имеем количество целых дней
}
 
};
data Res(data Data1, data Data2)
{
Data1.init(); Data2.init();
data ResData;
if(Data1.days>Data2.days)
ResData.days=Data1.days-Data2.days;
else
ResData.days=Data2.days-Data1.days;
ResData.result();
return ResData;
}
int main(int argc, char **argv)
{
data Data1;
data Data2;
char A;
while(true)
{
printf("Введите дату 1");
scanf("%d", Data1.year);
scanf("%d", Data1.month);
scanf("%d", Data1.day);
printf("Введите дату 2");
scanf("%d", Data2.year);
scanf("%d", Data2.month);
scanf("%d", Data2.day);
data Result=Res(Data1, Data2);
printf"Продолжительность жизни: %d.%d.%d", Result.day, Result.month, Result.year);
printf("Продолжительность жизни в днях: %d", Result.days);
printf("--------------------------------------\n\n\n\a");
while(A!='Y'||A!='y'||A!='n'||A!='N')
{
printf("Exit - N/Y?   ");
scanf("%c", A);
if(A=='Y'||A=='y') printf("Exit");
else if(A!='n'&&A!='N') printf("Неправильный выбор! Попробуйте снова!");
}
if(A=='Y'||A=='y') break;
}
return 0;
}
Я начинающий, поэтому приблизительно так, скорее всего, там ошибки + лень считать 366 дней, всё условно.
Прошу прощение. До тех пор, пока я это набирал, уже ответили. Не хочу делать плагиат.
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
25.03.2018, 11:40
Цитата Сообщение от begdmin03 Посмотреть сообщение
Прошу прощение.
О чем Вы его просите?


P.S. Да, я не мог промолчать.
0
25.03.2018, 12:43

Не по теме:

Господа! не забываем, что бывает ещё и високосный год - плюс 1 день каждые четыре года - хотя может в приведённых выше кодах подобное присутствует - лень проверять :)

0
25.03.2018, 12:50

Не по теме:

Recrut_rf, в моем присутствует

0
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
25.03.2018, 15:11
Вообще, я бы просто собрал прогу под .Net и использовал его классы.

Ну, или за 2 минуты поиска нашёл бы что-нибудь такое: https://github.com/HowardHinnant/date
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
25.03.2018, 15:24
Цитата Сообщение от Recrut_rf Посмотреть сообщение
плюс 1 день каждые четыре года
Не совсем так, там немного сложнее.
Вот сто лет назад писал, там все учитывается.
1
25.03.2018, 15:31

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
Не совсем так, там немного сложнее.
Вот сто лет назад писал, там все учитывается.
Добавил в закладки на всякий случай - вдруг пригодится

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2018, 15:31
Помогаю со студенческими работами здесь

Вычислить среднюю продолжительность свободного пробега молекул водорода
1. Вычислить среднюю продолжительность свободного пробега молекул водорода при давление 9.8 Н/см^2 и температуре +27 градусов С. 2....

Вычислить общую продолжительность всех видов телефонных контактов в сутки
В базе телефонных разговоров сохраняется суточная информация вида: номер абонента, количество минут разговора, вид контакта - местный,...

Вычислить общую продолжительность всех видов телефонных контактов в сутки
В базе телефонных разговоров сохраняется суточная информация вида: номер абонента, количество минут разговора, вид контакта - местный,...

Продолжительность медиафайла
Здравствуйте! При загрузке видео в стандартную библиотеку медиафайлов, у половины видео пишет продолжительность 0:00, а у другой...

Продолжительность работы
Коллеги, хочу поделиться своей проблемой, наверняка кто-то сталкивался с этим и сможет подсказать решение. Когда я сажусь работать, первые...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru