NOI:1968 特殊日历计算

NOI:1968 特殊日历计算_第1张图片

注意:这道题需要注意的一点就是  一天是一样长的

         所以,年月日和时分秒分开计算,即不用将天数转化为秒,直接计算天数即可,秒也是直接计算,而且由于一样长度所以,hour*60*60*60+minute*60+second=10*100*100,所以倍数为0.864

         而且,这里有个特殊的方法,就是输入的处理,因为输入的格式非常固定,所以可以一个数字一个符号间隔输入,不需要对字符串进行操作,非常简单省事

#include 
#include 
using namespace std;
int day,month,year,hour,minute,second;
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int a[6];
bool run(int y){//判断是否是闰年
    if(y%100!=0){
        if(y%4==0)return true;
    }else{
        if(y%400==0)return true;
    }
    return false;
}
int main(){
    int c;
    cin>>c;
    for(int j=0;j cin>>a[0]>>tt>>a[1]>>tt>>a[2];//规格化的输入可以这样进行
    cin>>a[3]>>t>>a[4]>>t>>a[5];
    
        int date=0;
        for(int i=2000;i2)date++;//当为闰年时,2月加一
        date+=a[3]-1;
        
        year=date/1000;
        date=date%1000;
        month=date/100+1;
        day=date%100+1;
    
    
    int minut=((a[0]*60*60+a[1]*60+a[2])/0.864);//因为天长度相等,所以倍数为0.864
    hour=minut/10000;
    minut=minut%10000;
    minute=minut/100;
    second=minut%100;
    
    cout<

你可能感兴趣的:(NOI)