Hdu_哪一天?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hdu_哪一天?相关的知识,希望对你有一定的参考价值。

#include<stdio.h>

#include<cstring>

 

#define N 12  //一行数据的最大长度


int whichDay(int year , int month ,int day ); //求该年该月该日的天数

int getLine(char s[],int lim);//读入一整行数据

 

 int main(){
 int flag1=0; char date[N];  
 int length=0;  
 while(n=getLine(date,N)){
  printf("%s",date);
  int year=0,month=0,day=0;
  for(int i=0;i<n;i++){
   if(date[i]==‘/‘){
    if(flag1==0){
     flag1=1;
    }else if(flag1==1){
     flag1=2;
    }
   }
   if(flag1==0){
    year=(date[i]-‘0‘)+year*10;
   }
   if(flag1==1){
    month=(date[i]-‘0‘)+month*10; 
   }
   if(falg1==2){
    day=date[i](date[i]-‘0‘)+day*10;
   }
  }
  int sum=whichDay(year,month,day);
  printf("%d\n",sum);
 } 
}
int  whichDay(int year , int month ,int day ){
 int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
 //判定是否是闰年
 if((year%4==0&&year%100!=0)||(year%400==0)){
  days[1]=29;
 } 
 //计算天数
 int sum=0; 
 for(int i=0;i<month-1;i++){
  sum+=days[i];
 }
 sum+=day;
 return sum;
}
int getLine(char s[],int lim){
 int i=0,c;  //i为该行中的字符长度,c记录读到的字符
 while(--lim>0 && (c=getchar()!=EOF) && c!=‘\n‘){
  s[i++]=c;
 } 
 if(c==‘\n‘){
  s[i++]=c;
 }
    s[i]=‘\0‘;
    return i;
}

*注:在该题中输入为 YYYY/MM/DD,一般可用scanf("%d/%d/%d",&year ,&month, &day);上述方法读入更有通用性。

本文出自 “11703160” 博客,转载请与作者联系!

以上是关于Hdu_哪一天?的主要内容,如果未能解决你的问题,请参考以下文章

问与答:我如何知道一个月的最后一天是哪一天?

Problem Y: 哪一天,哪一秒?

批处理脚本错误:获取一年中的哪一天

如何知道用户在 SwiftUI 中的日期选择器中触摸了哪一天

查找一周中的哪一天

查询出每一种食物的最高/低价,以及最高/低价发生在哪一天