• 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 }

    没有百度到解决方法,我也算是原创了。

  • 相关阅读:
    容器
    最大公共子串
    HTTPS复习
    进程同步算法
    Android系统机制
    【springBoot】之快速构建一个web项目
    【springBoot】之概述
    【java】之深入理解JVM
    【java】之equals和==区别
    【AMQ】之JMS Mesage structure(JMS消息结构)
  • 原文地址:https://www.cnblogs.com/dog-and-cat/p/6719564.html
Copyright © 2020-2023  润新知