завдання просте: Знайти кількість днів між двома датами. Передбачити облік високосних років.
Для практики пропонується два варіанти:
- Одна з граничних дат описується тільки роком. Тобто початкова дата вводиться повністю (например 25.12.2015), а друга тільки рік (например 2016). Проводиться підрахунок днів до 01.01.2016
- Обидві дати повні – описуються днем місяцем роком.
Наведу свій приклад, частково вирішальний перший спрощений варіант:
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 | #include <iostream> using namespace std; int DaysCount(int yearBegin, int monthBegin, int dayBegin, int yearCurrent){ int y, m, e, d, a, b, c, res = 0; a = yearCurrent - yearBegin; // Разница в годах b = a / 4; // Кол-во високосных c = a - b; // Кол-во невысокосных d = b * 366 + c * 365; // Предварительное кол-во дней до начала года d -= (yearCurrent % 4) ? 1 : 0; // +1 день, если год високосный // Считаем месяцы for (e = 1; e < monthBegin; e++) { // Если февраль и високосный: if (e == 2) d -= (yearCurrent % 4) ? 28 : 29; // Если по 30 дней else if (e == 4 || e == 6 || e == 9 || e == 11) d -= 30; else // Если по 31 день в месяце d -= 31; }; /* Для корректировки, если расчет идет от последнего месяца года до задаваемого граничного года можно использовать примерно такое условие, дабы не прибавлять, а вычитать количество дней */ if (monthBegin != 12 && a == 1) return dayBegin + d; else return d - dayBegin; } int main() { cout << DaysCount(2015, 12, 15, 2016) << endl; } |
тут функція DaysCount() приймає в перших трьох параметрах початкову дату (рік, місяць, день) і останнім параметром граничну (рік, 1-й день січня)
Вирішувати можна будь-яким способом, хоч циклом хоч чимось ще. А ось рішення по другому варіанту не покажу :) Нехай воно буде домашнім завданням. хай щастить!
Питання задавайте в коментарях
Я трохи поусердствовал і написав все з захистами, введенням і іншим… Могли б Ви оцінити і прокоментувати мій варіант вирішення цього завдання:
#include “stdafx.h”
#include
#include
int main()
{
setlocale (LC_ALL,”rus”);
використовуючи зЬй::cout;
використовуючи зЬй::cin;
Подвійний daus_date = 0;
подвійний month_date = 0;
подвійний year_date = 0;
довго довго daus_date_int = 0;
довго довго month_date_int = 0;
довго довго year_date_int = 0;
//——————————————————————————————————————————-
//перша дата
//——————————————————————————————————————————-
вибір BOOL = брехня;
while (вибір == брехня)
{
cout <> year_date;
(довго довго) year_date_int = year_date;
if (year_date_int >= 0)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
вибір = брехня;
}
}
system("cls");
вибір = брехня;
while (вибір == брехня)
{
cout <> month_date;
(довго довго) month_date_int = month_date;
if (month_date_int == 1 || month_date_int == 2 || month_date_int == 3 || month_date_int == 4 || month_date_int == 5 || month_date_int == 6 || month_date_int == 7 || month_date_int == 8 || month_date_int == 9|| month_date_int == 10 || month_date_int == 11 || month_date_int == 12)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
вибір = брехня;
}
}
system("cls");
вибір = брехня;
while (вибір == брехня)
{
cout <> daus_date;
(довго довго) daus_date_int = daus_date;
switch (month_date_int)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
{
if (daus_date_int >= 1 && daus_date_int <= 31)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
switch (month_date_int)
{
case 1:
cout << "В январе 31 день!\n\n";
break;
case 3:
cout << "В марте 31 день!\n\n";
break;
case 5:
cout << "В мае 31 день!\n\n";
break;
case 7:
cout << "В июле 31 день!\n\n";
break;
case 8:
cout << "В августе 31 день!\n\n";
break;
case 10:
cout << "В октябре 31 день!\n\n";
break;
case 12:
cout <= 1 && daus_date_int <= 30)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
switch (month_date_int)
{
case 4:
cout << "В апреле 30 днів!\n\n";
break;
case 6:
cout << "В июне 30 днів!\n\n";
break;
case 9:
cout << "В сентябре 30 днів!\n\n";
break;
case 11:
cout << "В ноябре 30 днів!\n\n";
break;
}
вибір = брехня;
}
break;
}
case 2:
{
if (year_date_int % 4 == 0)
{
if (daus_date_int <= 29)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
cout << "В високосном году, в лютому 29 дней\n\n";
вибір = брехня;
}
}
else
{
if (daus_date_int <= 28)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
cout << "В феврале 28 дней\n\n";
вибір = брехня;
}
}
break;
}
}
}
system("cls");
довго довго one_daus_date = 0;
довго довго one_month_date = 0;
довго довго one_year_date = 0;
one_daus_date = daus_date_int;
one_month_date = month_date_int;
one_year_date = year_date_int;
//——————————————————————————————————————————-
//друга дата
//——————————————————————————————————————————-
вибір = брехня;
while (вибір == брехня)
{
cout <> year_date;
(довго довго) year_date_int = year_date;
if (year_date_int >= 0)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
вибір = брехня;
}
}
system("cls");
вибір = брехня;
while (вибір == брехня)
{
cout <> month_date;
(довго довго) month_date_int = month_date;
if (month_date_int == 1 || month_date_int == 2 || month_date_int == 3 || month_date_int == 4 || month_date_int == 5 || month_date_int == 6 || month_date_int == 7 || month_date_int == 8 || month_date_int == 9|| month_date_int == 10 || month_date_int == 11 || month_date_int == 12)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
вибір = брехня;
}
}
system("cls");
вибір = брехня;
while (вибір == брехня)
{
cout <> daus_date;
(довго довго) daus_date_int = daus_date;
switch (month_date_int)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
{
if (daus_date_int >= 1 && daus_date_int <= 31)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
switch (month_date_int)
{
case 1:
cout << "В январе 31 день!\n\n";
break;
case 3:
cout << "В марте 31 день!\n\n";
break;
case 5:
cout << "В мае 31 день!\n\n";
break;
case 7:
cout << "В июле 31 день!\n\n";
break;
case 8:
cout << "В августе 31 день!\n\n";
break;
case 10:
cout << "В октябре 31 день!\n\n";
break;
case 12:
cout <= 1 && daus_date_int <= 30)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
switch (month_date_int)
{
case 4:
cout << "В апреле 30 днів!\n\n";
break;
case 6:
cout << "В июне 30 днів!\n\n";
break;
case 9:
cout << "В сентябре 30 днів!\n\n";
break;
case 11:
cout << "В ноябре 30 днів!\n\n";
break;
}
вибір = брехня;
}
break;
}
case 2:
{
if (year_date_int % 4 == 0)
{
if (daus_date_int <= 29)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
cout << "В високосном году, в лютому 29 дней\n\n";
вибір = брехня;
}
}
else
{
if (daus_date_int <= 28)
вибір = правда;
else
{
cout << "\nВы ввели недопустивое значение!\n";
cout << "В феврале 28 дней\n\n";
вибір = брехня;
}
}
break;
}
}
}
system("cls");
довго довго two_daus_date = 0;
довго довго two_month_date = 0;
довго довго two_year_date = 0;
two_daus_date = daus_date_int;
two_month_date = month_date_int;
two_year_date = year_date_int;
//——————————————————————————————————————————-
//Рахунок днів в першій датою
//——————————————————————————————————————————-
подвійний counter_daus_one_date = 0;
for (довго довго лічильник = 0; лічильник < one_year_date; лічильник ++)
{
if (лічильник % 4 == 0 && лічильник != 0)
counter_daus_one_date + = 366;
else
counter_daus_one_date + = 365;
}
for (короткий лічильник = 0; лічильник <= one_month_date; лічильник ++)
{
switch (лічильник)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
counter_daus_one_date + = 31;
break;
case 4:case 6 :case 9: case 11:
counter_daus_one_date + = 30;
break;
case 2:
if (one_year_date % 4 == 0)
counter_daus_one_date + = 29;
else
counter_daus_one_date + = 28;
break;
}
}
counter_daus_one_date + = one_daus_date;
//——————————————————————————————————————————-
//Рахунок днів у другій датою
//——————————————————————————————————————————-
подвійний counter_daus_two_date = 0;
for (довго довго лічильник = 0; лічильник < two_year_date; лічильник ++)
{
if (лічильник % 4 == 0 && лічильник != 0)
counter_daus_two_date + = 366;
else
counter_daus_two_date + = 365;
}
for (короткий лічильник = 0; лічильник <= two_year_date; лічильник ++)
{
switch (лічильник)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
counter_daus_two_date + = 31;
break;
case 4:case 6 :case 9: case 11:
counter_daus_two_date + = 30;
break;
case 2:
if (two_year_date % 4 == 0)
counter_daus_two_date + = 29;
else
counter_daus_two_date + = 28;
break;
}
}
counter_daus_two_date + = two_daus_date;
//——————————————————————————————————————————-
//Рахунок кількості днів між датами
//——————————————————————————————————————————-
cout << "Первая дата: ";
if (one_daus_date < 10)
cout << '0' << one_daus_date << '.';
else
cout << one_daus_date << '.';
if (one_month_date < 10)
cout << '0' << one_month_date << '.';
else
cout << one_month_date << '.';
cout << one_year_date << '\n';
cout << "Вторая дата: ";
if (two_daus_date < 10)
cout << '0' << two_daus_date << '.';
else
cout << two_daus_date << '.';
if (two_month_date < 10)
cout << '0' << two_month_date << '.';
else
cout << two_month_date << '.';
cout << two_year_date << '\n';
if (counter_daus_two_date < counter_daus_one_date)
cout << "Количество дней между датами: " << counter_daus_one_date – counter_daus_two_date < counter_daus_one_date)
cout << "Количество дней между датами: " << counter_daus_two_date – counter_daus_one_date << '\n';
if (counter_daus_two_date == counter_daus_one_date)
cout << "Вы ввели две одинаковые даты!" << '\n';
_getch();
return 0;
}
Вибачте, не знаю як цей код оформити в стилі С ++ (як оформлено в рамці Ваше рішення).
потрібно обрамити свій код Tegami код:
[код]
… тут ваш код …
[/код]
Тільки замість квадратних дужок потрібно писати кутові (знаки “меньше” і “больше”).
А ось так (без форматування) записаний ваш приклад ніхто, естественно, навіть дивитися не стане…
З таким же успіхом весь ваш код можна записати і в один рядок взагалі (можете перевірити, що при цьому він ще й працює).
Ось більш культурна версія мого коду:
#include "stdafx.h"
#include
#include
int main()
{
setlocale (LC_ALL,"rus");
using std::cout;
using std::cin;
double daus_date = 0;
double month_date = 0;
double year_date = 0;
long long daus_date_int = 0;
long long month_date_int = 0;
long long year_date_int = 0;
//-------------------------------------------------------------------------------------------------------------------------------
//Первая дата
//-------------------------------------------------------------------------------------------------------------------------------
bool choice = false;
while (choice == false)
{
cout <> year_date;
(long long) year_date_int = year_date;
if (year_date_int >= 0)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
choice = false;
}
}
system("cls");
choice = false;
while (choice == false)
{
cout <> month_date;
(long long) month_date_int = month_date;
if (month_date_int == 1 || month_date_int == 2 || month_date_int == 3 || month_date_int == 4 || month_date_int == 5 || month_date_int == 6 || month_date_int == 7 || month_date_int == 8 || month_date_int == 9|| month_date_int == 10 || month_date_int == 11 || month_date_int == 12)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
choice = false;
}
}
system("cls");
choice = false;
while (choice == false)
{
cout <> daus_date;
(long long) daus_date_int = daus_date;
switch (month_date_int)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
{
if (daus_date_int >= 1 && daus_date_int <= 31)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
switch (month_date_int)
{
case 1:
cout << "В январе 31 день!\n\n";
break;
case 3:
cout << "В марте 31 день!\n\n";
break;
case 5:
cout << "В мае 31 день!\n\n";
break;
case 7:
cout << "В июле 31 день!\n\n";
break;
case 8:
cout << "В августе 31 день!\n\n";
break;
case 10:
cout << "В октябре 31 день!\n\n";
break;
case 12:
cout <= 1 && daus_date_int <= 30)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
switch (month_date_int)
{
case 4:
cout << "В апреле 30 дней!\n\n";
break;
case 6:
cout << "В июне 30 дней!\n\n";
break;
case 9:
cout << "В сентябре 30 дней!\n\n";
break;
case 11:
cout << "В ноябре 30 дней!\n\n";
break;
}
choice = false;
}
break;
}
case 2:
{
if (year_date_int % 4 == 0)
{
if (daus_date_int <= 29)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
cout << "В високосном году, в феврале 29 дней\n\n";
choice = false;
}
}
else
{
if (daus_date_int <= 28)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
cout << "В феврале 28 дней\n\n";
choice = false;
}
}
break;
}
}
}
system("cls");
long long one_daus_date = 0;
long long one_month_date = 0;
long long one_year_date = 0;
one_daus_date = daus_date_int;
one_month_date = month_date_int;
one_year_date = year_date_int;
//-------------------------------------------------------------------------------------------------------------------------------
//Вторая дата
//-------------------------------------------------------------------------------------------------------------------------------
choice = false;
while (choice == false)
{
cout <> year_date;
(long long) year_date_int = year_date;
if (year_date_int >= 0)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
choice = false;
}
}
system("cls");
choice = false;
while (choice == false)
{
cout <> month_date;
(long long) month_date_int = month_date;
if (month_date_int == 1 || month_date_int == 2 || month_date_int == 3 || month_date_int == 4 || month_date_int == 5 || month_date_int == 6 || month_date_int == 7 || month_date_int == 8 || month_date_int == 9|| month_date_int == 10 || month_date_int == 11 || month_date_int == 12)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
choice = false;
}
}
system("cls");
choice = false;
while (choice == false)
{
cout <> daus_date;
(long long) daus_date_int = daus_date;
switch (month_date_int)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
{
if (daus_date_int >= 1 && daus_date_int <= 31)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
switch (month_date_int)
{
case 1:
cout << "В январе 31 день!\n\n";
break;
case 3:
cout << "В марте 31 день!\n\n";
break;
case 5:
cout << "В мае 31 день!\n\n";
break;
case 7:
cout << "В июле 31 день!\n\n";
break;
case 8:
cout << "В августе 31 день!\n\n";
break;
case 10:
cout << "В октябре 31 день!\n\n";
break;
case 12:
cout <= 1 && daus_date_int <= 30)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
switch (month_date_int)
{
case 4:
cout << "В апреле 30 дней!\n\n";
break;
case 6:
cout << "В июне 30 дней!\n\n";
break;
case 9:
cout << "В сентябре 30 дней!\n\n";
break;
case 11:
cout << "В ноябре 30 дней!\n\n";
break;
}
choice = false;
}
break;
}
case 2:
{
if (year_date_int % 4 == 0)
{
if (daus_date_int <= 29)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
cout << "В високосном году, в феврале 29 дней\n\n";
choice = false;
}
}
else
{
if (daus_date_int <= 28)
choice = true;
else
{
cout << "\nВы ввели недопустимое значение!\n";
cout << "В феврале 28 дней\n\n";
choice = false;
}
}
break;
}
}
}
system("cls");
long long two_daus_date = 0;
long long two_month_date = 0;
long long two_year_date = 0;
two_daus_date = daus_date_int;
two_month_date = month_date_int;
two_year_date = year_date_int;
//-------------------------------------------------------------------------------------------------------------------------------
//Счёт дней в первой дате
//-------------------------------------------------------------------------------------------------------------------------------
double counter_daus_one_date = 0;
for (long long counter = 0; counter < one_year_date; ++counter)
{
if (counter % 4 == 0 && counter != 0)
counter_daus_one_date += 366;
else
counter_daus_one_date += 365;
}
for (short counter = 0; counter < one_month_date; ++counter)
{
switch (counter)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
counter_daus_one_date += 31;
break;
case 4:case 6 :case 9: case 11:
counter_daus_one_date += 30;
break;
case 2:
if (one_year_date % 4 == 0)
counter_daus_one_date += 29;
else
counter_daus_one_date += 28;
break;
}
}
counter_daus_one_date += one_daus_date;
cout << counter_daus_one_date << " counter_one\n";
//-------------------------------------------------------------------------------------------------------------------------------
//Счёт дней во второй дате
//-------------------------------------------------------------------------------------------------------------------------------
double counter_daus_two_date = 0;
for (long long counter = 0; counter < two_year_date; ++counter)
{
if (counter % 4 == 0 && counter != 0)
counter_daus_two_date += 366;
else
counter_daus_two_date += 365;
}
for (short counter = 0; counter < two_month_date; ++counter)
{
switch (counter)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
counter_daus_two_date += 31;
break;
case 4:case 6 :case 9: case 11:
counter_daus_two_date += 30;
break;
case 2:
if (two_year_date % 4 == 0)
counter_daus_two_date += 29;
else
counter_daus_two_date += 28;
break;
}
}
counter_daus_two_date += two_daus_date;
cout << counter_daus_two_date << " counter_two\n";
//-------------------------------------------------------------------------------------------------------------------------------
//Счёт количества дней между датами
//-------------------------------------------------------------------------------------------------------------------------------
cout << "Первая дата: ";
if (one_daus_date < 10)
cout << '0' << one_daus_date << '.';
else
cout << one_daus_date << '.';
if (one_month_date < 10)
cout << '0' << one_month_date << '.';
else
cout << one_month_date << '.';
cout << one_year_date << '\n';
cout << "Вторая дата: ";
if (two_daus_date < 10)
cout << '0' << two_daus_date << '.';
else
cout << two_daus_date << '.';
if (two_month_date < 10)
cout << '0' << two_month_date << '.';
else
cout << two_month_date << '.';
cout << two_year_date << '\n';
if (counter_daus_two_date < counter_daus_one_date)
cout << "Количество дней между датами: " << counter_daus_one_date - counter_daus_two_date < counter_daus_one_date)
cout << "Количество дней между датами: " << counter_daus_two_date - counter_daus_one_date << '\n';
if (counter_daus_two_date == counter_daus_one_date)
cout << "Вы ввели две одинаковые даты!" << '\n';
_getch();
return 0;
}
#include
using namespace std;
int main()
{
INT,мій,бог;
INT den_1, mes_1, god_1;
cout<<"vvedite pervuy datu"<<endl;
cout<<"vvedite den"<>den;
cout<<"vvedite mesyas"<>мій;
cout<<"vvedite god"<>бог;
cout<<"————————-"<<endl;
cout<<"vvedite tekushuy datu"<<endl;
cout<<"vvedite den"<>den_1;
cout<<"vvedite mesyas"<>mes_1;
cout<<"vvedite god"<>god_1;
подвійний к = 0;
INT kol_d = 0;
INT kol_m = 0;
INT kol_g = 0;
INT sum_m = 0;
INT sum_d = 0;
if(mes_1 == 1)
к = 31;
else if(mes_1 == 2)
к = 28;
else if (mes_1 == 3)
к = 31;
else if (mes_1 == 4)
к = 30;
else if (mes_1 == 5)
к = 31;
else if (mes_1 == 6)
к = 30;
else if (mes_1 == 7)
к = 31;
else if (mes_1 == 8)
к = 31;
else if (mes_1 == 9)
к = 30;
else if (mes_1 == 10)
к = 31;
else if (mes_1 == 11)
к = 30;
else if(mes_1 == 12)
к = 31;
kol_d = к-ден;//вважаємо скільки днів до завершення введеного місяця предидущей дати
kol_m = 12-mes;//скільки місяців до завершення року
kol_g = god_1-(бог + 1);
sum_d = kol_d + den_1;
sum_m = kol_m + mes_1;
cout<<"dney"<<sum_d<<endl;
cout<<"mes"<<sum_m<<endl;
cout<<"godov"<<kol_g<<endl;
return 0;
}
#include "stdafx.h"
#include
#include
using namespace std;
int main()
{
setlocale (LC_ALL, "rus");
int day, month, year, finDay,finMonth,finYear, stData,finData, leapYear,monthDay = 0;
int monthArray[12]{ 31,28,31,30,31,30,31,31,30,31,30,31 };
while (true)
{
cout <> day >> month >> year;
if (year < 45 || monthArray[month] 12)
cout << "Ввод нверный, повторите ввод!" << endl;
else
break;
}
if (!(year % 4) && month < 3) leapYear = year / 4-1;
else leapYear = year / 4;
for (int i = 0; i < month; i++)
monthDay += monthArray[i];
stData = year * 365 + leapYear + monthDay + day;
monthDay = 0;
while (true)
{
cout <> finDay >> finMonth >> finYear;
for (int i = 0; i < finMonth; i++)
monthDay += monthArray[i];
if (!(finYear % 4) && month < 3) leapYear = finYear / 4-1;
else leapYear = finYear / 4;
finData = finYear * 365 + leapYear + monthDay + finDay;
if (finData <= stData)
cout << "Конечная дата не может быть раньше начальной\n";
else
break;
}
cout << "\n Между датами " << finData - stData << " дней\n";
_getch();
return 0;
}
Чи не занадто замудрілі з кодом? Адже можна все на багато простіше зробити з класами. Це врешті-решт ООП мова а не бейсик який-небудь.
ООП не панацея і, найчастіше, не спрощує код, але робить його більш зрозумілим і впорядкованим. Набагато простіше завдання можна зробити використовуючи бібліотечні API мов C або C ++. Але тільки для початківців корисніше показати як алгоритмічно виробляються обчислення, ніж використовувати готові інструменти.
поширеність панацеєю, і найчастіше не спрощує код, але робить його більш зрозумілим і впорядкованим. За рахунок чого дійсно можна було б спростити код, так це використовувати API бібліотек C або C ++ для роботи з датами. Але для початківців корисніше демонстрація алгоритмів обчислень, ніж використання готових інструментів.
Ось моє рішення. Конечно, тут немає жодних захистів і код написаний жахливо, т.к. відсутній нормальний найманого і коментарі, але зі своїм завданням він справляється.
ніколи! … Ніколи при роботі з календарем не використовуйте своє “ручне” уявлення про дати, календарі (погано розуміється). наприклад то, що:
– 2016 – це високосний рік, 366 днів…
– але!: 1900 (или 1800 і т.д.) – це НЕ високосні роки, 365 днів, виключення…
– але!: 2000 – мрії Visokosnyj рік, це виключення з попереднього правила…
Для роботи з календарем є бібліотека : тип даних struct tm, time_t … функції вказуєте їй(), місцевий час() … і т.д.