首页 > 代码库 > C++中输出日期显示问题(不使用printf):编程题#4:Tomorrow never knows?
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 }
没有百度到解决方法,我也算是原创了。
C++中输出日期显示问题(不使用printf):编程题#4:Tomorrow never knows?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。