c++日历 /为了孙曌凌,CSDN

哈喽,今天又是一起练手代码,表示时间的,他就是c++日历代码,有5中选择,我就是自己编然后发给在座的博客们的,这次也是一个尝试,接下来。

源代码展示:   (纯属猿创)

#include<iostream>

#include<stdlib.h>

#include<iomanip>

using namespace std;

int o;

bool prime = 1;

bool prime1 = 1;

bool prime2 = 1;

struct {

    int year;

    int month;

    int day;

}date;

int main()

{

    void op1();

    void op2();

    void op3();

    void op4();

    void op5();

   

    cout << "1.显示某一年的全年日历\n";

    cout << "2.显示某年某月的月历\n";

    cout << "3.显示某年某月某日是星期几\n";

    cout << "4.显示某年某月某日是该年度的第几天\n";

    cout << "5.退出\n";

    int z;

    cout << "请选择(0-4)" << endl;

    cin >> z;

    switch (z)

    {

    case 1: op1();

        break;

    case 2: op2();

        break;

    case 3: op3();

        break;

    case 4: op4();

        break;

    case 5: op5();

        break;

    }

    return 0;

}

void op4()

{

    int days;

    cout << "输入年月日" << endl;

    cin >> date.year >> date.month >> date.day;

    switch (date.month)

    {

    case 1:days = date.day;

        break;

    case 2:days = date.day + 31;

        break;

    case 3:days = date.day + 59;

        break;

    case 4:days = date.day + 90;

        break;

    case 5:days = date.day + 120;

        break;

    case 6:days = date.day + 151;

        break;

    case 7:days = date.day + 181;

        break;

    case 8:days =date.day + 212;

        break;

    case 9:days = date.day + 243;

        break;

    case 10:days = date.day + 273;

        break;

    case 11:days = date.day + 304;

        break;

    case 12:days = date.day + 334;

        break;

    }

    cout << date.year << "年" << date.month << "月" << date.day << "日是本年度的第" << days << "天" << endl;

}

void op3()

{

    int xq, d1;

    if (prime)

    {

        cout << "输入年份" << endl;

        cin >> date.year;

        cout << "输入本月份" << endl;

        cin >> date.month;

        cout << "输入日份" << endl;

        cin >> date.day;

    }

    else if (prime1)

    {

        cout << "输入年份" << endl;

        cin >> date.year;

        cout << "输入本月份" << endl;

        cin >> date.month;

        date.day = 1;

    }

    else if (prime2)

    {

        cout << "输入年份" << endl;

        cin >> date.year;

    }

    d1 = (date.year - 1) * 365 + (date.year - 1) / 4 - (date.year / 100) + (date.year / 400);//百度搜的公式

    xq = d1 % 7 + 1;

    switch (date.month)

    {

    case 1:date.day = date.day; break;

    case 2:date.day = date.day + 31; break;

    case 3:date.day = date.day + 59; break;

    case 4:date.day = date.day + 90; break;

    case 5:date.day = date.day + 120; break;

    case 6:date.day = date.day + 151; break;

    case 7:date.day = date.day + 181; break;

    case 8:date.day = date.day + 212; break;

    case 9:date.day = date.day + 243; break;

    case 10:date.day = date.day + 273; break;

    case 11:date.day = date.day + 304; break;

    case 12:date.day = date.day + 334; break;

    }

    if (((date.year % 4 == 0 && date.year % 100 != 0) || date.year % 400 == 0) && date.month >= 3)//判断闰年

        date.day += 1;

    xq = (xq + (date.day - 1)) % 7;

    if (xq == 0) xq = 7;

    if (prime)

    switch (xq)

    {

    case 1:cout << "该天是星期一" << endl; break;

    case 2:cout << "该天是星期二" << endl; break;

    case 3:cout << "该天是星期三" << endl; break;

    case 4:cout << "该天是星期四" << endl; break;

    case 5:cout << "该天是星期五" << endl; break;

    case 6:cout << "该天是星期六" << endl; break;

    case 7:cout << "该天是星期日" << endl; break;

    }

}

void op2()

{

    prime = 0;

    op3();

    int i, s;

    int a[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

    int m = 0, b = 0;

    if ((date.year % 4 == 0 && date.year % 100 != 0) || date.year % 400 == 0) a[2] = 29;

    cout << date.year << "年" << date.month << "月" << endl;

    i = date.month;

    cout << "------------------------------------------" << endl;

    cout << "    日    一    二    三    四    五    六" << endl;

    cout << "------------------------------------------" << endl;

    if (o == 7) o = 0;

    for (m = 0; m < o; m++) cout << "      ";

    for (b = 1; b <= a[i]; b++)

    {

        cout << setw(6) << b;

        if ((b + o) % 7 == 0) cout << endl;

    }

    if (b < 33) cout << endl;

    for (m = 0; m < o; m++) cout << " " << endl;

    prime = 0;

}

void op1()

{

    prime1 = 0;

    for (date.month = 1; date.month <= 12; date.month++)

    {

         op2();

        prime2 = 0;

    }

}

void op5()

{

    cout << "byebye\n";

}

‘随时随的看日历’(红眼),古德白。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值