zoukankan      html  css  js  c++  java
  • [置顶] C语言实验:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。

    要求:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。



    简单的循环结构,并结合基姆拉尔森公式,注意月份转换。

    下面是源码,仅供参考:

    #include <iostream>
    
    using namespace std;
    
    void month1(int i, int count)
    {
        switch (i)
        {
        case 1:count += 31;break;
        case 2:count += 29;break;
        case 3:count += 31;break;
        case 4:count += 30;break;
        case 5:count += 31;break;
        case 6:count += 30;break;
        case 7:count += 31;break;
        case 8:count += 31;break;
        case 9:count += 30;break;
        case 10:count += 31;break;
        case 11:count += 30;break;
        case 12:count += 31;break;
        }
    }
    void month2(int &i, int &count)
    {
        switch (i)
        {
        case 1:count += 31;break;
        case 2:count += 29;break;
        case 3:count += 31;break;
        case 4:count += 30;break;
        case 5:count += 31;break;
        case 6:count += 30;break;
        case 7:count += 31;break;
        case 8:count += 31;break;
        case 9:count += 30;break;
        case 10:count += 31;break;
        case 11:count += 30;break;
        case 12:count += 31;break;
        }
    }
    void day1(int a)
    {
        switch(a)
        {
            case 1: cout<<"Monday"<<endl;break;
            case 2: cout<<"Tuesday"<<endl;break;
            case 3: cout<<"Wednesday"<<endl;break;
            case 4: cout<<"Thursday"<<endl;break;
            case 5: cout<<"Friday"<<endl;break;
            case 6: cout<<"Saturday"<<endl;break;
            case 7: cout<<"Sunday"<<endl;break;
        }
    }
    int main()
    {
        int year, month, day;
        while(1)
        {
            int count = 0;
            cout<<"Please input the date as the following format\nyear-month-day\n\n";
            cin>>year>>month>>day;
            for(int i = 1; i < year; i ++)
            {
                if((i % 4 == 0 && i % 100 != 0)||(i % 400 == 0))
                {
                    count += 366;
                }
                else
                {
                    count += 365;
                }
            }
            for(int i = 1; i < month; i++)
            {
                if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))
                {
                    month1(i,count);
                }
                else
                {
                    month2(i,count);
                }
            }
            count += day;
            cout<<endl<<"Days between 1-1-1 and "<<year<<'-'<<month<<'-'<<day<<" is(are) "<<count<<" day(s)"<<endl<<endl;
            if(month==1||month==2)
            {
                month+=12;
                year--;
            }
            int d = (2+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;
            if(d==0)
            {
                d=7;
            }
            cout<<"That day is ";
            day1(d);
            cout<<endl;
        }
    }



  • 相关阅读:
    JAVAWEB使用保存cookie、删除cookie、获取cookie工具类
    JAVA比较指定的两个日期
    编写一个C程序运行时输出 Hello World!
    正确理解以下名词及其含义:1源程序,目标程序,可执行程序2程序编辑,程序编译,程序连接3程序,程序模块,程序文件4函数,主函数,被调用函数,库函数5程序调试,程序测试
    为什么需要计算机语言?高级语言有哪些特点?
    什么是程序?什么是程序设计?
    题解 卡农
    题解 GT考试
    题解 SP6779 【GSS7
    题解 Crash 的文明世界
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/2992072.html
Copyright © 2011-2022 走看看