万年历——C++版本

/***************************************************************

File Name: wnl.cpp
Author: 浮生流年
Function List: main() 主函数
Created Time: 2018年01月14日 星期日 19时38分03秒
**************************************************************/

#include 
using namespace std;

class Calendar
{
public :
    Calendar()//构造函数
    {
        TotalDays = 0;
        MonthDays = 0;
        system("clear");
        printf("欢迎使用!\n\n");
    };

    void Get_time();//获取时间

    void Total_days();//计算总天数

    void Week_days();//计算所查询月份的第一天是星期几

    void Month_days();//计算所查询月份的总天数

    void print();//打印日历

    ~Calendar()//析构函数
    {
        printf("感谢您的使用!\n");
    };
private :
    int Year;
    int Month;
    int TotalDays;
    int WeekDays;
    int MonthDays;
};

void Calendar::Get_time()//获取时间
{
    printf("请输入您要查询的年份和月份\n");
    printf("         年    月\n");
    system("tput cup 3 4");
    scanf("%d", &Year);
    system("tput cup 3 12");
    scanf("%d", &Month);
    printf("\n");
}


void Calendar::Total_days()//计算总天数
{
    int year, month;
    for (year = 1900; year < Year; year++)
    {
        if ((Year % 4 == 0 && Year %100 != 0) || (Year % 400 == 0))
        {
            TotalDays += 366;
        }
        else
        {
            TotalDays += 365;
        }
    }

    for (month = 1; month < Month; month++)
    {
        if (month == 2)
        {
            if ((Year % 4 == 0 && Year %100 != 0) || (Year % 400 == 0))
            {
                month += 29;
            }
            else
            {
                month += 28;
            }
        }
        else
        {
            if (Month == 4 || Month == 6 || Month == 9 || Month == 11)
            {
                month += 30;
            }
            else
            {
                month += 31;
            }
        }
    }
    TotalDays += month;
}

void Calendar::Week_days()//计算所查询月份的第一天是星期几
{
    TotalDays += 1;
    WeekDays = TotalDays % 7;
}

void Calendar::Month_days()//计算所查询月份的总天数
{
    if ((Year % 4 == 0 && Year % 100 != 0) || (Year % 400 == 0))
    {
        MonthDays = 29;
    }
    else 
    {
        if (Month == 4 || Month == 6 || Month == 9 || Month == 11)
        {
            MonthDays = 30;
        }
        else
        {
            MonthDays = 31;
        }
    }
}

void Calendar::print()//打印日历
{
    Total_days();
    Week_days();
    Month_days();
    int i;

    printf(" 日 一 二 三 四 五 六\n");

    for (i = 0; i < WeekDays; i++)
    {
        printf("   ");
    }

    for (i = 1; i < MonthDays; i++)
    {
        if ((WeekDays + i) % 7 == 0)
        {
            printf("%3d\n");
            continue;
        }
        printf("%3d", i);
    }
    printf("\n\n");
}



int main()
{
    int Year, Month;
    Calendar cal;
    cal.Get_time();
    cal.print();

    return 0;
}

你可能感兴趣的:(项目,C++)