• 1900年为星期一,任意一天求星期几。


    #include<stdio.h>
    int main()
    {
        int year,month,day,sum1,sum2,sum3,sum,i,year1;
        printf("请输入今天的日期,格式1900-1-1。
    ");
        scanf("%d-%d-%d",&year,&month,&day);
        year1=year;       /*变量重复性使用,考虑是否为初始值,尽量不要让一个变量在连续的操作下使用。*/ 
        if(year<1900)
        {
            sum1=0;
            for(year=year+1;year<1900;year++)
            {
                if(year%4==0&&year%100!=0||year%400==0)
                {
                    sum1=sum1+366;
                }
                else
                {
                    sum1=sum1+365;
                }
            }
            sum2=0;
            for(i=1;i<month;i++)
            {
                if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
                {
                    sum2=sum2+31;
                }
                else if(i==4||i==6||i==5||i==9||i==11)
                {
                    sum2=sum2+30;
                }
                else if(i==2)
                {
                    if(year1%4==0&&year1%100!=0||year1%400==0)
                    {
                        sum2=sum2+29;
                    }
                    else
                    {
                        sum2=sum2+28;
                    }
                }
            }
            sum2=sum2+day; 
            if(year1%4==0&&year1%100!=0||year1%400==0)
            {
                sum3=366-sum2+1;
            }
            else
            {
                sum3=365-sum2+1;
            }
            sum=sum1+sum3;
            
            switch(sum%7)
            {
                case 0:printf("您输入的日期为星期一。
    ");break;
                case 1:printf("您输入的日期为星期日。
    ");break;
                case 2:printf("您输入的日期为星期六。
    ");break;
                case 3:printf("您输入的日期为星期五。
    ");break;
                case 4:printf("您输入的日期为星期四。
    ");break;
                case 5:printf("您输入的日期为星期三。
    ");break;
                case 6:printf("您输入的日期为星期二。
    ");break;
            }
                printf("%d",sum);
            
        }
        else if(year==1900)
        {
            for(i=1;i<month;i++)
            {
                if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
                {
                    sum=sum+31;
                }
                else if(i==4||i==6||i==5||i==9||i==11)
                {
                    sum=sum+30;
                }
                else if(i==2)
                {
                    sum=sum+28;
                }
            }
            sum=sum+day;
            switch(sum%7)
            {
                case 0:printf("您输入的日期为星期日。
    ");break;
                case 1:printf("您输入的日期为星期一。
    ");break;
                case 2:printf("您输入的日期为星期二。
    ");break;
                case 3:printf("您输入的日期为星期三。
    ");break;
                case 4:printf("您输入的日期为星期四。
    ");break;
                case 5:printf("您输入的日期为星期五。
    ");break;
                case 6:printf("您输入的日期为星期六。
    ");break;
            }
            printf("%d",sum);
        }
        else 
        {
            sum=0;
            sum1=0;
            for(year=year-1;year>=1900;year--)
            {
                if(year%4==0&&year%100!=0||year%400==0)
                {
                    sum1=sum1+366;
                }
                else
                {
                    sum1=sum1+365;
                }
            }
            sum2=0;
            for(i=1;i<month;i++)
            {
                if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
                {
                    sum2=sum2+31;
                }
                else if(i==4||i==6||i==5||i==9||i==11)
                {
                    sum2=sum2+30;
                }
                else if(i==2)
                {
                    if(year1%4==0&&year1%100!=0||year1%400==0)
                    {
                        sum2=sum2+29;
                    }
                    else
                    {
                        sum2=sum2+28;
                    }
                }
            }
            sum2=sum2+day; 
            sum=sum1+sum2;
            switch(sum%7)
            {
                case 0:printf("您输入的日期为星期日。
    ");break;
                case 1:printf("您输入的日期为星期一。
    ");break;
                case 2:printf("您输入的日期为星期二。
    ");break;
                case 3:printf("您输入的日期为星期三。
    ");break;
                case 4:printf("您输入的日期为星期四。
    ");break;
                case 5:printf("您输入的日期为星期五。
    ");break;
                case 6:printf("您输入的日期为星期六。
    ");break;
            }
            printf("%d",sum);
        }
        return 0;
    }

    实验总结:

    变量重复性使用,考虑是否为初始值,尽量不要让一个变量在连续的操作下使用。
  • 相关阅读:
    使用jQuery和CSS自定义HTML5 Video 控件 简单适用
    在win7系统下使用Windows XP Mode 和 Windows Virtual PC搭建window xp系统
    Runtime 解读
    Reachability实时监控网络变化
    关于AsyncSocket
    关于CoreData的用法
    邓白氏编码申请
    Android 到底是个什么东西?
    听 Fabien Potencier 谈Symfony2 之 《What is Symfony2 ?》
    听 Fabien Potencier 谈Symfony2 之 《What is Dependency Injection ?》
  • 原文地址:https://www.cnblogs.com/TX980502/p/5987982.html
Copyright © 2020-2023  润新知