使用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);}


原文链接: https://www.cnblogs.com/bl4nk/archive/2011/04/21/2023087.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/24347

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午2:12
下一篇 2023年2月8日 上午2:13

相关推荐