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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| int Cinema::afficher_Date(wstring d)
{ // Date
if (d == L"")
{
wcout << L"date=[]" << endl;
return 1;
}
tm D;
wstring d_;
basic_string <wchar_t>::size_type pos = d.length();
int i = 0;
if (pos == 10)
{
goto stop;
}
else if (pos == 28)
{
d_ = d.substr(0, 18);
if (d_ == L"Date de reprise - ")
{
d = d.substr(18);
i = 1;
goto stop;
}
return 1;
}
else if (pos == 27)
{
d_ = d.substr(0, 17);
if (d_ == L"Date de sortie - ")
{
d = d.substr(17);
i = 2;
goto stop;
}
return 1;
}
return 1;
stop: //nYear, nMonth, nJour, nheure, nMin, nSec
int year = 0, mon = 0, mday = 0;
pos = 0;
if (
(d[0] == L'1' || d[0] == L'2' || d[0] == L'3' ) &&
(d[1] == L'0' || d[1] == L'1' || d[1] == L'2' || d[1] == L'3' || d[1] == L'4' || d[1] == L'5' || d[1] == L'5' || d[1] == L'6' || d[1] == L'7' || d[1] == L'8' || d[1] == L'9') &&
(d[2] == L'0' || d[2] == L'1' || d[2] == L'2' || d[2] == L'3' || d[2] == L'4' || d[2] == L'5' || d[2] == L'5' || d[2] == L'6' || d[2] == L'7' || d[2] == L'8' || d[2] == L'9') &&
(d[3] == L'0' || d[3] == L'1' || d[3] == L'2' || d[3] == L'3' || d[3] == L'4' || d[3] == L'5' || d[3] == L'5' || d[3] == L'6' || d[3] == L'7' || d[3] == L'8' || d[3] == L'9')
)
{
d_ = d.substr(0, 4);
year = stoi(d, &pos);
if (year <= 1900 || year >= 3001)
{ // Erreur
#if Cinema_afficher_Date_ == 1
wcout << L"year=" << year << endl;
#endif
return 1;
}
}
else
{
#if Cinema_afficher_Date_ == 1
wcout << L"year=???" << endl;
#endif
return 1;
}
pos = d.find(L"-", 4);
if (pos == wstring::npos)
{
#if Cinema_afficher_Date_ == 1
wcout << L"year=" << year << endl;
#endif
return 1;
}
d_ = d.substr(5, 2);
mon = stoi(d_, &pos);
if ( mon <= 0 || mon >= 13)
{ // Erreur
#if Cinema_afficher_Date_ == 1
wcout << L"mon=" << mon << endl;
#endif
return 1;
}
if (pos == wstring::npos)
{
return 0;
}
d_ = d.substr(8, 2);
mday = stoi(d_, &pos);
if (mday <= 0 || mday >= 32)
{ // Erreur
#if Cinema_afficher_Date_ == 1
wcout << L"mday=" << mday << endl;
#endif
return 1;
}
D.tm_year = year - 1900;
D.tm_mon = mon - 1;
D.tm_mday = mday;
if (i == 0)
{
Date = D;
Date_ = 1;
wcout << L"iiiiiiiii" << endl;
}
else if (i == 1)
{
Date_de_reprise = D;
Date_de_reprise_ = 1;
}
else if (i == 2)
{
Date_de_sortie = D;
Date_de_sortie_ = 1;
}
else
return 1;
return 0;
} |