Advertisement
MARSHAL327

Untitled

Nov 27th, 2019
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <fstream>
  4. #include <string>
  5. #include <windows.h>
  6. #include <conio.h>
  7. #include <stdio.h>
  8. #include <cwchar>
  9. #include <winuser.h>
  10. #include <tchar.h>
  11. using namespace std;
  12.  
  13. // ==========ПЕРЕМЕЩЕНИЕ КУРСОРА НА ВЫБРАННУЮ ПОЗИЦИЮ==========
  14. void gotoxy(int xpos, int ypos)
  15. {
  16.     COORD scrn;
  17.     HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
  18.     scrn.X = xpos; scrn.Y = ypos;
  19.     SetConsoleCursorPosition(hOuput, scrn);
  20. }
  21.  
  22. bool valid_date(int _Year, int _Month, int _DayNo)
  23. {
  24.     int days_in_month[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
  25.  
  26.     if (_Year % 4 == 0)
  27.         days_in_month[2] = 29;
  28.  
  29.     if ((_Month < 1) || (_Month > 12))
  30.         return false;
  31.  
  32.     if ((_DayNo < 1) ||  (_DayNo > days_in_month[_Month]))
  33.         return false;
  34.  
  35.     return true;
  36. }
  37.  
  38. int main()
  39. {
  40.  
  41.     int length = 0;
  42.     int pospos = 0;
  43.     int posarrays[8] = { 0, 1, 3, 4, 6, 7, 8, 9 };
  44.     int pos = posarrays[pospos];
  45.     string mask1 = "__.__.____";
  46.     cout << mask1;
  47.     while (length != 8) {
  48.         int ch = _getch();
  49.         if (ch == 8 && length != 0) {
  50.             length--;
  51.             mask1[pos - ((length == 3 || length == 1) ? 2 : 1)] = '_'; // пропускаем точки
  52.             gotoxy(0, 0);
  53.             pospos--;
  54.             pos = posarrays[pospos];
  55.             cout << mask1;
  56.         } else if (ch >= '0' && ch <= '9') {
  57.             length++;
  58.             mask1[pos] = ch;
  59.             gotoxy(0, 0);
  60.             pospos++;
  61.             pos = posarrays[pospos];
  62.             cout << mask1;
  63.         }
  64.     }
  65.  
  66.     string d = mask1.substr(0, 2);
  67.     string m = mask1.substr(3, 2);
  68.     string y = mask1.substr(6, 4);
  69.  
  70.     if (valid_date(stoi(y), stoi(m), stoi(d))) {
  71.         cout << "ok";
  72.     }
  73.     else cout << "error";
  74.    
  75.  
  76.     return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement