Спроектувати програму, яка б використовувала бібліотеку ctime, структуру tm, тип даних time_t та будь-які функції цієї бібліотеки. С++
Створити файл, який зберігає, назву товару, дату і час виробництва. Код з введенням. Знайти товари, строк яких більше 2 років.
Ответы
Ответ:
Объяснение:
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
int main()
{
// Відкриття файлу для зберігання даних про товари
ofstream myfile("products.txt");
// Перевірка, чи файл було успішно відкрито
if (myfile.is_open())
{
// Запис назви товару
myfile << "Product 1" << endl;
// Отримання поточного часу та збереження його у змінну time_t
time_t now = time(0);
// Конвертація часу в структуру tm для збереження окремо дати та часу
tm* ltm = localtime(&now);
// Запис дати та часу виробництва у файл
myfile << ltm->tm_mday << "/" << 1 + ltm->tm_mon << "/" << 1900 + ltm->tm_year << " " << ltm->tm_hour << ":" << ltm->tm_min << ":" << ltm->tm_sec << endl;
// Закриття файлу
myfile.close();
}
else
{
cout << "Unable to open file";
return 1;
}
// Відкриття файлу для зчитування даних про товари
ifstream readfile("products.txt");
// Перевірка, чи файл було успішно відкрито
if (readfile.is_open())
{
string line;
while (getline(readfile, line))
{
// Читання назви товару та дати виробництва
string product_name = line;
getline(readfile, line);
string date_str = line;
// Конвертація дати виробництва в time_t
tm tm_time = {};
strptime(date_str.c_str(), "%d/%m/%Y %H:%M:%S", &tm_time);
time_t production_time = mktime(&tm_time);
// Обчислення різниці між поточним часом та часом виробництва товару
time_t now = time(0);
double diff_seconds = difftime(now, production_time);
// Перевірка, чи товар був вироблений більше двох років тому
if (diff_seconds > 60 * 60 * 24 * 365 * 2)
{
cout << "Product " << product_name << " has been produced more than 2 years ago." << endl;
}
}
// Закриття файлу
readfile