题解 | 打印日期

打印日期

https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b

#include <iostream>
#include <stdio.h>
using namespace std;
//
//   void date(int m,int n,int dayOfmonth[]){
//        int d,y,sum=0,i;
//        for(i=0;i<12;++i){
//            sum+=dayOfmonth[i];
//            if(sum>=n){
//                y=i;
//                if(y>1){
//                  d=sum-n;
//              }
//              d=n;
//                break;
//            }
//        }
//        printf("%d-%d-%d\n",m,y,d);
//
//    }
int main() {
    int m, n, d, y;
    int dayOfmonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    while (scanf("%d%d", &m, &n) != EOF) {
        bool isLeap;
        int sum = 0, i;
        isLeap = m % 400 == 0 || m % 100 != 0 && m % 4 == 0;
        if (isLeap) {
            dayOfmonth[2] = 29;
        }
	  //以下可以用date函数代替
        for (i = 0; i <=12; ++i) {
            sum += dayOfmonth[i];
            if (sum >= n) {
                y = i;
                if (y > 1) {
                    sum = sum - dayOfmonth[i];
                    d = n - sum;
                } else {
                    d = n;
                }

                break;
            }
        }
	  
        if (d < 10) {
            if (y < 10) {
                printf("%d-0%d-0%d\n", m, y, d);
            } else {
                printf("%d-%d-0%d\n", m, y, d);
            }

        } else {
            if (y < 10) {
                printf("%d-0%d-%d\n", m, y, d);
            } else {
                printf("%d-%d-%d\n", m, y, d);
            }
        }
	  //date(m,n,dayOfmonth);
    }
}

王道机试指南 文章被收录于专栏

这个专栏是参考王道机试指南中相关的练习题哦

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务