C++中输出日期显示问题(不使用printf):编程题#4:Tomorrow never knows?

由于不能使用自带的printf函数,也是哭阿,好了,直接讲解题思路:题目说了可以活用setfill和setw控制符,那应该可以解决题目:
直接贴代码:
1 #include<iostream>
2 #include<stdio.h>
3 #include<iomanip>
4 #include<string.h>
5 using namespace std;
6 bool IsLeapYear( int year ){
7 bool isLeap = false;
8 if(( year % 400 == 0)||(year % 4 == 0 && year % 100 != 0))
9 isLeap = true;
10 return isLeap;
11 }
12
13 int main() {
14 int year, month, day;
15 scanf("%d-%d-%d", &year, &month, &day);
16
17 int month_data[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
18
19 if(day >= month_data[month-1]){
20 if( month == 12 ){
21 year++;
22 month = 1;
23 day = 1;
24 }
25 else if(month == 2 ){
26 if(IsLeapYear( year ) && day == 28)
27 day = 29;
28 else{
29 month++;
30 day = 1;
31 }
32 }
33 else{
34 month++;
35 day = 1;
36 }
37
38 }
39 else
40 day++;
41 cout<<setw(4)<<year<<"-";//此处设置输出字符宽度为4,后面再输出“-”
42 cout<<setw(2)<<setfill('0')<<month;//此处设置输出字符宽度为2,字符数不足的话会被0补充
43 cout<<"-"<<setw(2)<<setfill('0')<<day<<endl;//此处先打印“-”,再输出字符宽度为2,不足的由0补充。
44 return 0;
45
46 } 
没有百度到解决方法,我也算是原创了。
相关推荐
Android开发CXY 2020-11-11
lpkwxl 2020-06-17
RealJianyuan 2020-06-14
pbyanglove 2020-06-09
徐建岗网络管理 2020-06-09
fengjing81 2020-06-06
lynjay 2020-06-02
wujingsheng0 2020-05-16
吴小伟 2020-05-09
sillion 2020-05-03
xiaobater 2020-05-01
ericasadun 2020-04-26
lynjay 2020-04-26
choupiaoyi 2020-04-26
tydldd 2020-04-23