zoukankan      html  css  js  c++  java
  • 计算毫秒

    题目描述:
    给你两个日期,问这两个日期差了多少毫秒。
    输入格式:
    两行,每行一个日期,日期格式保证为“YYYY-MM-DD hh:mm:ss”这种形式。第二个日期时间一定比第一个日期时间要大两个日期的年份一定都是21世纪的年份。
    输出格式:
    一行一个整数代表毫秒数。
    样例输入1:
    2000-01-01 00:00:00
    2000-01-01 00:00:01
    样例输出1:
    1000
    样例输入2:
    2000-01-01 00:00:00
    2000-11-11 00:00:00
    样例输出2:
    27216000000
    样例解释:
    从前有座山。
    数据范围与规定:
    对于10%的数据,两个日期相同。
    对于20%的数据,两个日期只有秒数可能不同。
    对于30%的数据,两个日期只有秒数、分钟数可能不同。
    对于40%的数据,两个日期的年月日一定相同。
    对于50%的数据,两个日期的年月一定相同。
    对于60%的数据,两个日期的年份一定相同。
    对于80%的数据,两个日期一定都是21世纪的某一天,且第二个日期一定大于等于第一个日期。

    #include<iostream>
    #include<cstdio>
    #define lon unsigned long long
    using namespace std;
    lon n1,y1,r1,s1,f1,m1;
    lon n2,y2,r2,s2,f2,m2;
    lon ans,month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    bool judge(lon n)
    {
        if((n%4==0&&n%100!=0)||n%400==0)
        return 1;
        return 0;
    }
    lon yue(lon n,lon y)
    {
        lon tmp=0;
        if(judge(n)) month[2]=29;
        else month[2]=28;
        for(lon i=1;i<y;i++)
        tmp+=month[i]*24*60*60;
        return tmp;
    }
    lon nian(lon n)
    {
        lon tmp=0;
        if(judge(n))
        tmp=366*24*60*60;
        else tmp=365*24*60*60;
        return tmp;
    }
    void work()
    {
        if(n1==n2)
        {
            if(y1==y2)
            {
                if(r1==r2)
                {
                    if(s1==s2)
                    {
                        if(f1==f2)
                        {
                            if(m1==m2)
                            ans+=0;
                            else ans=m2-m1;
                        }
                        else
                        {
                            lon t1=f1*60+m1;
                            lon t2=f2*60+m2;
                            ans=t2-t1;
                        }
                    }
                    else
                    {
                        lon t1=s1*60*60+f1*60+m1;
                        lon t2=s2*60*60+f2*60+m2;
                        ans=t2-t1;
                    }
                }
                else
                {
                    lon t1=(r1-1)*24*60*60+s1*60*60+f1*60+m1;
                    lon t2=(r2-1)*24*60*60+s2*60*60+f2*60+m2;
                    ans=t2-t1;
                }
            }
            else
            {
                lon t1=0,t2=0;
                t1+=yue(n1,y1);
                t1+=(r1-1)*24*60*60+s1*60*60+f1*60+m1;
                t2+=yue(n2,y2);
                t2+=(r2-1)*24*60*60+s2*60*60+f2*60+m2;
                ans=t2-t1;
            }
        }
        else
        {
            lon t1=0,t2=0;
            for(lon i=2000;i<n1;i++)
            t1+=nian(i);
            for(lon i=2000;i<n2;i++)
            t2+=nian(i);
            t1+=yue(n1,y1);
            t2+=yue(n2,y2);
            t1+=(r1-1)*24*60*60+s1*60*60+f1*60+m1;
            t2+=(r2-1)*24*60*60+s2*60*60+f2*60+m2;
            ans=t2-t1;
        }
    }
    int main()
    {
        freopen("two.in","r",stdin);
        freopen("two.out","w",stdout);
        scanf("%lld-%lld-%lld %lld:%lld:%lld",&n1,&y1,&r1,&s1,&f1,&m1);
        scanf("%lld-%lld-%lld %lld:%lld:%lld",&n2,&y2,&r2,&s2,&f2,&m2);
        work();
        cout<<ans*1000;
        fclose(stdin);
        fclose(stdout);
        return 0;
    }
  • 相关阅读:
    元音字母
    最近使用LINQ遇到的故障
    ASP.NET 2.0下实现匿名用户向注册用户的迁移(下)
    ASP.NET MVC 2配置使用CKEditor编辑器
    ASP.NET 角色及成员管理(entry 'AspNetSqlMembershipProvider' has already been added错误的解决)
    为什么Firefox 3及之后的版本不能加载本地的JavaScript文件了?
    在ASP.NET MVC中使用DropDownList
    LINQ entityset 不包含GetEnumerator的定义,在MVC中使用entity framework(EF)出现“必须添加对程序集“System.Data.Entity”解决方法
    去除element.style样式
    判断ViewData[""]是否为空
  • 原文地址:https://www.cnblogs.com/cax1165/p/6070906.html
Copyright © 2011-2022 走看看