zoukankan      html  css  js  c++  java
  • 使用C++在终端打印日历

    //print calender
    #include <iostream>
    #include
    <iomanip>
    using namespace std;

    void printMonth(int year,int month);
    void printMonthTitle(int year,int month);
    void printMonthName(int month);
    void printMonthBody(int year,int month);
    int getStartDay(int year,int month);
    int getTotalNumberOfDays(int year,int month);
    int getNumberOfDaysInMonth(int year,int month);
    bool isLeapYear(int year);

    int main()
    {
    cout
    <<"Enter full year(e.g.,2010):";
    int year;
    cin
    >>year;

    cout
    <<"Enter month in number between 1 and 12:";
    int month;
    cin
    >>month;
    printMonth(year,month);
    cout
    <<endl;
    return 0;
    }

    void printMonth(int year,int month)
    {
    printMonthTitle(year,month);
    printMonthBody(year,month);
    }

    void printMonthTitle(int year,int month)
    {
    printMonthName(month);
    cout
    <<" "<<year<<endl;
    cout
    <<"_____________________________"<<endl;
    cout
    <<" Sun Mon Tue Wed Thu Fri Sat"<<endl;
    }

    void printMonthName(int month)
    {
    switch(month)
    {
    case 1: cout<<setw(16)<<"January"; break;
    case 2: cout<<setw(16)<<"Feruary"; break;
    case 3: cout<<setw(16)<<"March"; break;
    case 4: cout<<setw(16)<<"April"; break;
    case 5: cout<<setw(16)<<"May"; break;
    case 6: cout<<setw(16)<<"June"; break;
    case 7: cout<<setw(16)<<"July"; break;
    case 8: cout<<setw(16)<<"August"; break;
    case 9: cout<<setw(16)<<"September"; break;
    case 10: cout<<setw(16)<<"October"; break;
    case 11: cout<<setw(16)<<"November"; break;
    case 12: cout<<setw(16)<<"December"; break;
    }
    }

    void printMonthBody(int year,int month)
    {
    int startDay=getStartDay(year,month);
    int numberOfDaysInMonth=getNumberOfDaysInMonth(year,month);
    for(int i=0;i<startDay;i++)
    {
    cout
    <<" ";
    }
    for(int i=1;i<=numberOfDaysInMonth;i++)
    {
    cout
    <<setw(4)<<i;
    if((i+startDay)%7==0)
    cout
    <<endl;
    }
    }

    int getStartDay(int year,int month)
    {
    int startDay1800=3;
    int totalNumberOfDays=getTotalNumberOfDays(year,month);
    return (totalNumberOfDays+startDay1800)%7;
    }

    int getTotalNumberOfDays(int year,int month)
    {
    int total=0;
    for(int i=1800;i<year;i++)
    if(isLeapYear(i))
    total
    =total+366;
    else
    total
    =total+365;
    for(int i=1;i<month;i++)
    total
    =total+getNumberOfDaysInMonth(year,i);
    return total;

    }

    int getNumberOfDaysInMonth(int year,int month)
    {
    if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
    return 31;
    if(month==4||month==6||month==9||month==11)
    return 30;
    if(month==2) return isLeapYear(year)?29:28;
    return 0;
    }

    bool isLeapYear(int year)
    {
    return year%400==0||(year%4==00&&year%100!=0);
    }

  • 相关阅读:
    三元判断大小奇偶
    键盘输入 循环 for if-else while 等循环
    三元 导包
    进制
    符号等
    第二模块 4.1 模块的种类和介绍
    第二模块 练习题
    第二模块 3.15 迭代器
    第二模块 3.14 通过生成器实现并发编程
    第二模块 3.13 生成器
  • 原文地址:https://www.cnblogs.com/bl4nk/p/2023087.html
Copyright © 2011-2022 走看看