Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <iostream>
- #include <windows.h>
- #include <vector>
- #include <stdlib.h>
- using namespace std;
- struct product
- {
- long number, left;
- short made_day, made_month, made_year, before_day, before_month, before_year;
- string name;
- };
- int main()
- {
- //while (true){
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- //SetConsoleOutputCP(CP_UTF8);
- vector <product> v;
- int days_in_month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- product p;
- long i = 0, j = 0, a;
- string s;
- char c;
- ifstream fin ("database.txt");
- ofstream fout ("log.xls");
- //Ввод данных (дата изготовления, дата конца срока годности, колво товара, наименование)
- while (fin)
- {
- fin >> a; p.made_day = a; fin >> c;
- fin >> a; p.made_month = a; fin >> c;
- fin >> a; p.made_year = a;
- fin >> a; p.before_day = a; fin >> c;
- fin >> a; p.before_month = a; fin >> c;
- fin >> a; p.before_year = a;
- fin >> a; p.number = a;
- getline(fin, s); p.name = s; fin >> c;
- v.push_back(p);
- }
- //получение сегодняшней даты
- SYSTEMTIME cur_time;
- GetSystemTime(&cur_time);
- short dd, mm, yy;
- long term, leap;
- dd = cur_time.wDay; mm = cur_time.wMonth; yy = cur_time.wYear;
- //подсчёт оставшегося кол-ва дней для каждого товара
- for (i = 0; i < v.size(); i++)
- {
- leap = 0;
- for (j = yy + 1; j < v[i].before_year; j++)
- if (!(j % 400) || ((j % 100) && !(j % 4)))
- leap++;
- if ((!(yy % 400) || ((yy % 100) && !(yy % 4))) && mm < 3)
- leap++;
- if ((!(v[i].before_year % 400) || ((v[i].before_year % 100) && !(v[i].before_year % 4))) && v[i].before_month > 2)
- leap++;
- term = max(yy - v[i].before_year - 1, 0) * 365 + leap;
- if (v[i].before_year == yy)
- a = yy + 1;
- else
- a = 1;
- for (j = a; j < v[i].before_month; j++)
- term += days_in_month[j];
- if (mm != v[i].before_month || yy != v[i].before_year)
- term += days_in_month[mm] - dd + v[i].before_day;
- else
- term += v[i].before_day - dd;
- v[i].left = term;
- }
- //Вывод в файл
- fout << "Наименование Количество товара Дней до окончания срока годности\n";
- for (i = 0; i < v.size(); i++)
- fout << v[i].name << " " << v[i].number << " " << v[i].left << '\n';
- // Вывод на экран
- cout << "Наименование Количество товара Дней до окончания срока годности\n";
- for (i = 0; i < v.size(); i++)
- cout << v[i].name << " " << v[i].number << " " << v[i].left << '\n';
- cout << "Отчёт за " << cur_time.wDay << "." << cur_time.wMonth << "." << cur_time.wYear << " " << cur_time.wHour << ":" << cur_time.wMinute << ":" << cur_time.wSecond << " сохранён в файле \"log.xls\"";
- //system ("cls");
- //}
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement