// Created by Ricsae on 2024/11/13. #include using namespace std; #define int long long #define 初始化 system("CHCP 65001");system("cls");for(char i:str1)_str[0]+=i;for(char i:str2)_str[1]+=i; #define Fexit system("pause");system("cls");break; #define Fexit2 _sleep(300);printf_purple("请按下任意按键。");getchar();system("cls");break; #define WTF cout <<" \n.i.:.....................:...:.:::::.:::::.....:.......:.:::...........:.::....:::.:::::::::::.............. . ....... .i:::::::::..:.....:\n"":7iii:i:i:i:::::::::i::iiiiiiiiiiiiiirrrrii:iiiii::.::iiiirii:i:i:iiiiiiririiiiiriiiiiriiiiirii::::::::::::.:.::::::i. i7ririririiii::::::i\n"".i.:.:.:...............:.:.:::::::::::::::::.:::.....:.:::::.....::::::i:i:i:i::::::::::::::::........................ :i::::::::::.......:\n"".i:.:.:...:.............:::::::::::::::::::.:::::.....::::i::::::::.. ....::i:::::::i:i::.:....................... :::::::::::::......:\n"".i.:.:.:.........:.:.:.:::::::::::::::::::::.::::....::::ii:.. .:::i::::::i:::...................:.. :i::::::::::::.....:\n"":::.:...:.........:.:.:::::::::::::::::::::.:.:::...:::.. . .:::...................: i::::::::::::...:..:\n"".i.:.:.:.....:.......:.:::::::::::::::::::::::::::.. :::::.................. .:i:::::::::::......:\n"".i:.:.:.:.:.:.........:::::::::::::::::::::::::.. .:::............... .i::::::::::::......:\n"".:.:.:.............:.:.::::::::::::::::::i:: .::::............ .ii:::::::::::......:\n"":::.:.:.:...:.......:.::::::::::::::::ri:. ..:::........ .i::::::::::::......:\n"".i.....:...:.:.....:.:.::::::::::::iiri. ...:..... :ii::::::::::...:...:\n"".:......:.:.:.........::::::::::::iii. ..:.. :i::::::::::::......:\n"".i.......:.:.........:.::::::::::ii. .:. :ii::::::::::::.....:\n"".:..:.:...:.....:...:.::::::::::ii. .. :i::::::::::::......:\n"".i...:.:.....:...:.:.::::::::::i: ..:i:::::::::::.......:\n""::..:.:::...:.:.:.:.:::::::::::: .ir:i::::::::::......:\n"".i...:::.:.:.:.:.:.:.:::::::::. :ii::::::::::.:.....:\n"".:..:.:.:.:.:.:.:.:.:::::::::. :ii::::::::::......:\n"".i...:.:.:.:.:.:.:.:.:::::::: .:i::::::::.......:\n"".:..:.:...:.:.:...:.:.::::::. .:i::::::::......:\n"".i.:.:.....:.:.:...:.::::::: .:i::::::.......:\n"".:....:.:.:::.:.:.:.:.:::::. :r: .:i::::::......:\n"".i...:.:.:::.:.:.:.:.::::::: rjUJ: .:.::i7r. .i::::.......:\n"".:......:.:.:.:...:.:.::::i. 7ZR2r. ..::iii:7vY7i. ::::::......:\n"".:.......:::.:.:.....::::::. iX27: ::iiriir7YYLYr: .::::.......:\n"".:..:....::.:.......:.::::: i: ..::ririrr7vsJj7r:. :::::......:\n"".:.:.....:::.:.:.....:::::. .u1 . :iiirrrrir77vvL7ri:. .::::......:\n"".:......:::.........::::::: LPU: ..:.::iiri7r7rrirrrrrii:::. .i.:.......\n"".:.......:::........:::::::. rsvYvYLvvYsY777v77ii::::::.. .:........:\n"".:......:::.:.......:::::.:. ivYssjYU2XSSSS2Ijvrrii:i::. :........:\n"".i.......:..........:::::::: .::rr .:rv7vLu152XSqIIuusYvv77ii. .:.......:\n"".:......:::...:.....:::::.:: .2BBBBBQui:. :ir7vvv7v7LvJuISKUjLL77rr :.:......:\n"".:.....:.:.........:::::.::: 7DBQBBRKuYvri:. ..ii777irir:.. . .:.......:\n"".:..................:::::.::. .ri .iv7i.....irv77::.... ...:......:\n"".:.................:::::.:::. rvYr .:...:iv5X5vi.....:........ ..........:\n"".:..............:..::.:::.::: 777rrr777riii:. .7i :iri7L5qESsi...:ir7Y5bgDg2Uj7:. ..........:\n"".:.............:...:::::... rrrrv7v1U1s7v777Lriirir5IsLvuUqPJr: .:irv2SdQBBBg2Uvr: ..:.......:\n"".:............:...:.:.:.:.:.i: :rrrvLjjIUUYYYv77r77vJSPKJ7r7LXSur: .i77: .:rii:. ..:........:\n"".:...........:.:...:.:.:.:rJM: irr7JS5dbbPKU2UIUS5PKPP27v777USuri. .rj7 ...........:\n"".:..................:.:..:vqX .rr7j25bPDEgZZbdbdEDbb2J77777jqXr:.....r7r7L7r.. .............\n"".:.................:.:::.:7q7 ir7v5IPqEEgEDZgEdEDDDqU77rrrY1qui.....:ivrrri:i:iii:. .:...........:\n"".:..................:.::..7Ur ir7sSPEggQQQQBQBBBRgIjrririv2bS7:.....:rvJ7vvvrrrririi:.. ::...........:\n"".:..................::::.:r2v ii7712PEgRQRBQQDbsriiiri7vsSgdIvi.....irvU1YjJI2SSbPKUsLvr:... :::...........:\n"".:..................:.:..:LjJ. .ir771USKdP5U2Liiiir7JvIPQBBBQSU7:....i7JX5U1uu21XXSXbPPIJ7r:::. ....:...........\n"".:.................:::::.:vJr. .iii7r7vYvYrrriirr77Lrr7gBBBBBPJvi:. i72PEqP255XKbPPPPS5UL7rii.. ................:\n"".:..................:::.::77i. .iiiirrrr7rrrrr7vYvr .:7Jvi:irri: :v2EPEPbKdPdPdbqI1YL7rii::. ..:...............\n"".:.....:.:.........:.:::.:i7i. :iiiirrrrrrrvv11uvvr. ii.. :7uIXqdKbqKPb5SU1Yv77ri::.. :::::...............:\n"".:..................:.:::.ivs: :rirrrr7r77j2S22Yv77r77Y7i :7ruUS2S5S25U2JY77rrii::.. :i::::::...............\n"".:...................:::..:77: :iiirr7r7L2u1uuJLvv7v7YsjjUsr.. .ir77uuuuUjjYv77rrri::.... .i::::.:...............:\n"".:..................:.:::.:::..:iiir7r77Lu1vsvsYJv7r77v7Yj2JY7v77r7r77v7vvJ7v7v77rrii::.... :::::::.:...............\n"".:...................:.:::::...::ii7r77v7vvYLv7vrriiirrrrvLJYsvYvLvJLYvLvvv777rrir::... ... .ii::::::...:...........:\n"".:..................:.:.:.:.:...::ii7r777i:. ..::rvJv7777L7YYL7vr7iiii::.. :YbI. ... :i::::::.:..............:\n"".:.................:.:.:...:....:::rr7rrii. .:. .iLYL77rvvv7vrrii::... :MBBBi .... :::::::::.:.............:\n""::..................:.:.:.:.:...::::rr7rrrr: .7dQbsui :7v7rrvv7rriri:... vBBBQr ...... .:::.:::::.:............:\n"".:.................:.:.:.:.:.....::::rirr7r7i:::. . ::rrv77rri:::. BBBB7 ....... :::.:.:.:...............:\n"".:................:.:.:::.:.:....:::iirrrrrrr::ivJI1J7i.. .. :irrrrii:... 7Yi ... ..... :i::.:.:.:..............:\n"".:.................:.:.:.:.:.....::::irrr7rrrr:::iir7s2qDMK2vr:.. ..::iii::::.. . . . .:.:. i::::.:.:.:.:...........:\n""..................:.:.:.:::.:.....:::irr7r777ii:. ..:rrrii:i::.... ... .::::. ..:.... .::.:::::.:.:.............\n"".:.............:...:.:.:.:.:::.......:i7r77v77ii:... .::iiiii::::.. ... ..... .i::.:::::...............:\n"".:................:::.:.:::.:.:.....::rrrrr7v7v77ri:i:i::::...::::i:i:i::. ........ .i:::::::.:...............\n"".:.................:.:.:.:::.:.... ..:irr7r77vjSS55X1Y77r7rrii:i:iiiii:. ......... .i::::.:.:...............:\n""..................:::.:.:.:.:.:::.. ..:i7r77vvu1X5qXKUs7v777rrririiiri. ........... .::.:.:.:.:...............\n"".. ................:.:::.:::.:::::.....:r7r77vvsJUu21svv7v77rrrriiii:. ............ .:.:.....:...............:\n""... ..............:.:.:.:.:.::::::::. .irrr7rvvL7LvL7vrrrrir:i::::.. ............. .:......:.................\n"".. ................:.:.:.:.:.::::i:... ..::iirrrrririi::::.:..... .............. .:.......................:\n""... ..............:.:::::.:.::i:: :::. ............... . .............. ..........................\n"".. . ..............:::::::::ii. :ii::.. ii:.................. ....................:\n""... . .............::.::ii:. iiii::.. .i::................ . ....................\n"".: ..............:.::::i:. 7Bi:iri::.. ::................ .... . ..................:\n""................::::::: YBS.:irir::... 7 .:.............. ..........................\n"".:.......:...:.::::. .QB :iiiririi::... .B. ............... ::.....:.................:\n"".:....::::::::::. BB irirrrrrii:i::.... :B2 ............ :::.......:..............:\n"":r:... :BB rrrirrriiirii::::.... . . . 7Bg .......... .::::.:...................:\n"" . DBB irrrrrrririr:i:::i:i::.. ... . . gQM .:...... .i::.:.:.:.:...............\n"" rBBB .irirrrrrrrii:::iiiiii: . ......... . 7QMQ .:... :::::::...:...............:\n"" gQBBQ irrrrrrirrrii:::i:iii. . ........... . rBQdB ... :r::::.....................\n"" .BEDBBr .rr7r7rrrririi:::iii:. . .................. rBBZDQ :iii::.:.................:\n"" rBEqBBB. .rrrr7rrrrrri:...:.. ...................... YBBDPZB :::::................:\n"" 7BKXqBBB .irrrrrrrrir::.. .............:....... QBBgPqgM ..:::.:::::.......:\n"" dBBBBBBBB7.ivsU22uJvLvv7r:i.:.::iiiiiiriiiriiiiii:i::LBQBBBBBBB ..:::..:"; int y,m,d,cishu=0; string _str[2]={"",""}; string encodedStr = "|%E9%83%91%E4%B8%96%E5%87%AF"; string decodedStr = "%E8%B0%81%E5%91%8A%E8%AF%89%E4%BD%A0%E8%BF%99%E4%B8%AA%E5%BD%A9%E8%9B%8B%E7%9A%84"; string wk_zh[7]={"日","一","二","三","四","五","六"}; string wk_en[7]={"Su","Mo","Tu","We","Th","Fr","Sa"}; const int str1[]={56,56,50,50,52,54,52,54,66,65}; const int str2[]={56,56,50,50,52,54,52,54,98,97}; const int runPing[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31},}; int WeekDay(int y,int m,int d){ if(y<1582||y==1582) {if(m<10||(m==10&&d<5))d+=3;else if(m==10&&(412)return false;if(d>runPing[IsLeapYear(y)][m])return false;return true;} //颜色字 string ToString(int n){string t=" ";char tm;if(n<10){tm=n+'0';t+=" ";t+=tm;return t;}else{tm=n/10+'0';t+=tm;tm=n%10+'0';t+=tm;return t;}} string ToStringB(int n) {string result;while (n > 0) {result.push_back('0' + (n % 10));n /= 10;}reverse(result.begin(), result.end());return result;} void print(const char* s) { printf("\033[0m\033[1;32m%s\033[0m", s); } void printf_red(const char* s) { printf("\033[0m\033[1;31m%s\033[0m", s); } void printf_blue(const char* s) { printf("\033[0m\033[1;34m%s\033[0m", s); } void printf_purple(const char* s) { printf("\033[0m\033[1;35m%s\033[0m", s); } void print_cd(int time,const char* s) {_sleep(time);printf_blue(s);} void clearInput() {/*清除错误状态*/ cin.clear();/*辅助函数,用于清理输入流*/ cin.ignore(numeric_limits::max(), '\n'); /*忽略错误输入*/ printf_red("非法输入,请重新输入!\n"); } void getdata(int n) {d=n%100,m=(n/100)%100,y=n/10000;} void ToTrueDate() {/*int& y, int& m, int& d*/ while(m>12)m-=12,y++; while(d>runPing[IsLeapYear(y)][m]){d-=runPing[IsLeapYear(y)][m],m++;if(m>12)m=1,y++;} } /*copy区:Unicode转码技术*/string urlDecode(const string& src) {string ret;for (size_t i = 0; i < src.length(); ++i) {if (src[i] == '%') {/*处理百分号编码*/if (i + 2 < src.length()) {std::string hex = src.substr(i + 1, 2);char decodedChar = static_cast(std::stoi(hex, nullptr, 16));/*将十六进制字符串转换为字符*/ret += decodedChar;i += 2; /*跳过已处理的部分*/}} else if (src[i] == '+') ret += ' ';/*'+' 号转换为一个空格*/else ret += src[i]; /*直接添加其他字符*/}return ret;} void PYear(int n){ encodedStr+="|By:Ricsae"; string decodedStr = urlDecode(encodedStr); int day[12][6][7]={{{{0}}}}; for(int k=0;k<12;++k){ int FD=WeekDay(y,k+1,1); int daynum=1; for(int i=0;i<6;++i){ for(int j=((daynum==1)?FD%7:0);j<7;++j){ if(y==1582&&k==9&&daynum==5)daynum+=10; if(daynum>runPing[IsLeapYear(y)][k+1])break; day[k][i][j]=daynum++; } } } string str1="";for(int i=0;i<26*n+5;i++)str1+="=";str1+="|";int tempa=ToStringB(y).length();str1.replace(tempa+2, 1, "|");str1.replace(0, 2, "||");str1.replace(2, tempa, ToStringB(y));cout< 3) { clearInput(); continue;}// 应对非法输入的法二,弊端:过于麻烦,但可辅助输入 if(choice=="1"){ while(true) { print("查周几 示例: 20190220为2月20日\n请输入日期:(如果我沉默了一定是你不对!!!)\n"); getline(cin,temp);value=to_int(temp); if(value<10000||cin.fail()){clearInput();continue;} getdata(value); if(d==0) continue; if(!IsTureData()){printf_blue("很屑的了,搞点正常的不行吗?\n");ToTrueDate();cout<<"\033[0;34m猜你想知道"<>value;cin.ignore(1e9,'\n');//方案1 getline(cin,temp);value=to_int(temp); if(value<1||cin.fail()){clearInput();continue;} if(IsLeapYear(value))cout<9999)printf("\033[0m\033[24;34m%s\033[0m", "这个年号害我笑一下\n"); Fexit } }else if(choice=="3"){ while(true) { while(true){ print("查日历 请输入年份:\n"); getline(cin,temp);y=to_int(temp); if(y<1||cin.fail()){clearInput();continue;} break; } while(true){ print("查日历 输出多少列:\n");int n=13; getline(cin,temp);n=to_int(temp); if(cin.fail()){clearInput();continue;} if(01)print_cd(1000,"提示1:\n数字+字母\n"); if(cishu>2)print_cd(1000,"提示2:\n数字是由其他方式代替来的\n"); if(cishu>3)print_cd(1000,"真的没新提示了\n"); if(cishu>4)print_cd(1000,"再有新提示的话会④人的\n"); system("pause"); system("cls"); // 后后记:突然就明白了,什么叫防御式代码 }else if(choice=="5"){ break; }else if(choice==_str[0]||choice==_str[1]){cout<