读书人

唉日期输出有关问题麻烦来看看

发布时间: 2012-08-07 14:54:49 作者: rapoo

唉,日期输出问题,麻烦来看看
书看完了,我一直在做书后的练习,遇到了麻烦,主要是输出的时候,总是不对不齐,尤其是当一个月到另一个月的时候。希望能给个解决方法。

C/C++ code
#include<iostream>#include<iomanip>#include<math.h>using namespace std;//int firstday;static void coutmonth(int m);//m 表示月份static int daysofmonth(int);static void head(int);int weekday,days,year;int main(){    int firstday;    cout<<"请输入年"<<endl;    cin>>year;    firstday=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+1)%7;//计算元旦是星期几    weekday=firstday;//星期(它将会在后面输出号数的时候发生改变)    for(int i=1;i<=12;i++)    {        head(i);        coutmonth(i);        cout<<"\n";    }    return 0;    }void coutmonth(int m){    days=daysofmonth(m);    for(int i=1;i<=days;i++)    {        cout<<setw(8)<<i;        weekday=(weekday+1)%7;        if(weekday==0)        {            cout<<"\n";        }    }}int daysofmonth(int m){    switch(m)    {    case 1:    case 3:    case 5:    case 7:    case 8:    case 10:    case 12:return 31;    case 4:    case 6:    case 9:    case 11:return 30;    case 2:if((year%4==0&&year%100!=0)||(year%400==0)){return 29;}else{return 28;}//((year%4==0&&year%100!=0)||(year%400==0))?return 29:return 28;//2月很特殊哦    }}void head(int m){    cout<<m<<"月    日    一    二    三    四    五    六 "/*分别隔了一tab*/<<"\n"<<" ";//隔了一空格为了过那个“月”字    for(int i=0;i<=weekday;i++)//这个循环有些拿不准    {        cout<<" ";//隔了一个空格    }}


[解决办法]
C/C++ code
void coutmonth(int m){    days=daysofmonth(m);    for(int i=1;i<=days;i++)    {        cout<<'\t'<<i;......void head(int m){    cout<<m<<"月\t日\t一\t二\t三\t四\t五\t六 "/*分别隔了一tab*/<<"\n"<<" ";//隔了一空格为了过那个“月”字    for(int i=0;i<weekday;i++)//这个循环有些拿不准    {        cout<<"\t";//隔了一个空格    }}
[解决办法]
探讨
C/C++ code

void coutmonth(int m)
{
days=daysofmonth(m);
for(int i=1;i<=days;i++)
{
cout<<'\t'<<i;

......

void head(int m)
{
cout<<m<<"月\t日\t一\t二\t三\t四\t五\t六 "/*……

[解决办法]
在 couthead 中没有输出 \t 但是在 coutmonth 中输出第一个数之前输出了一个 \t 的, 已经对齐了.

读书人网 >C++

热点推荐