zoukankan      html  css  js  c++  java
  • 数日子

    数日子

    Time Limit: 1000MS Memory limit: 65536K

    题目描述

          按照公元纪年法,闰年被定义为能被 4 整除的年份,但是能被 100 整除而不能被 400 整除的年份除外,例如 1900 年就不是闰年。现在我们已知 2000 年 1 月 1 日为 星期六,你的任务是,对于给定的一个整数 n,写个程序计算并输出从 2000 年 1 月 1 日经过 n 天后的日期和该天是星期几。

    输入

    输入包含多组测试数据。
    每组测试数据只包含一个正整数 n (0 <= n <= 99999)。

    输出

    对于每组测试数据,输出只有一行,为 n 天后的日期和该天为星期几,输出格式为 “YYYY-MM-DD week-day”(不包含引号) 具体格式见样例输出。 

    示例输入

    100
    400

    示例输出

    2000-04-10 Monday
    2001-02-04 Sunday
     
     1 #include<stdio.h>   
     2 #include<string.h>   
     3 char s[][20]={"Saturday","Sunday","Monday","Tuesday", "Wednesday", "Thursday","Friday"};   
     4   
     5 int day_year(int year)   
     6 {   
     7     if(year%100==0) return year%400==0 ?366:365;   
     8     return year%4==0?366:365;   
     9 }   
    10 int day_month(int month,int year)   
    11 {   
    12     if(month==2) return day_year(year)==366?29:28;   
    13     int d;   
    14     switch(month)   
    15     {case 1:case 3:case 5:case 7:case 8:case 10:case 12: d=31;break;   
    16     default :d=30;}   
    17     return d;   
    18 }   
    19 int main ()   
    20 {   
    21     int n,y,m,d,w;   
    22   
    23     while(scanf("%d",&n)!=EOF)   
    24     {   
    25         y=2000;m=1;d=1;   
    26         w=n%7;   
    27         while(n)   
    28         {   
    29         if(n>=day_year(y))   
    30         {n=n-day_year(y);y++;}   
    31         else if(n>=day_month(m,y))   
    32         {n=n-day_month(m,y);m++;}   
    33         else    
    34         {d=d+n;n=0;}   
    35         }   
    36         printf("%d-%02d-%02d %s\n",y,m,d,s[w]);   
    37     }   
    38     return 0;   
    39 }   
    40   
    41     
    42   
  • 相关阅读:
    基于RBAC的权限设计模型
    RBAC用户权限管理数据库设计
    系统多语言实践(二)
    多语言系统的数据库设计
    系统多语言实践(一)
    企业后台模板
    MYSQL
    JS,Jquery
    BootStrap
    KindEditor
  • 原文地址:https://www.cnblogs.com/LK1994/p/2977553.html
Copyright © 2011-2022 走看看