5.3例题--日历问题--2964

#include <stdio.h>
#include <stdlib.h>

int leap(int y)
{
    if( y%4!=0 || (y%100==0 && y%400!=0 ))return 0;
    else return 1;
}

int main(int argc, char *argv[])
{
  int days, w, i, j;
  char week[7][10] = {"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
  int year[2] = {365,366};
  int month[2][12] = {31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
  
  while( scanf("%d",&days) && days!=-1 )
  {
         w = days%7 ;
         for( i = 2000 ; days >= year[leap(i)] ; i++ )
             days -= year[leap(i)] ;
         for( j = 0 ; days >= month[leap(i)][j] ; j++ )
             days -= month[leap(i)][j] ;
         printf("%d-%02d-%02d %s\n",i,j+1,days+1,week[w]);  //注意输出格式%02d 
  }
  
  system("PAUSE");	
  return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值