お願いします!!
Posted: 2007年1月22日(月) 11:33
初めまして、こんにちは
実は学校の課題でこのプログラムを入力した年月の先月、今月、来月の3ヶ月分を横に表示したいんですが……。なかなかうまくいかず苦戦しています。
どなたかお願いします!!m(_ _)m
#include <stdio.h>
int main(void)
{
int month[/url]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,bias,s,week,i;
while (1){
printf("\n\n西暦の年 月 ? ");
scanf("%d %d",&y,&m);
if((y%4==0 && y%100!=0) || y%400==0)
month[2]=29;
else
month[2]=28;
bias=y+(y-1)/4-(y-1)/100+(y-1)/400; //y年1月1日の日曜日からのズレ
s=0;
for(i=1;i<m;i++)
s=s+month;
week=(bias+s)%7; //1日の曜日
printf(" ---%d年%d月---\n",y,m);
printf(" sun mon tue wed thu fri sat\n");
for(i=0;i<week*4;i++)
printf(" ");
for(i=1;i<=month[m];i++){
printf("%4d",i);
if((week+i)%7==0)
printf("\n");
}
}
}
実は学校の課題でこのプログラムを入力した年月の先月、今月、来月の3ヶ月分を横に表示したいんですが……。なかなかうまくいかず苦戦しています。
どなたかお願いします!!m(_ _)m
#include <stdio.h>
int main(void)
{
int month[/url]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,bias,s,week,i;
while (1){
printf("\n\n西暦の年 月 ? ");
scanf("%d %d",&y,&m);
if((y%4==0 && y%100!=0) || y%400==0)
month[2]=29;
else
month[2]=28;
bias=y+(y-1)/4-(y-1)/100+(y-1)/400; //y年1月1日の日曜日からのズレ
s=0;
for(i=1;i<m;i++)
s=s+month;
week=(bias+s)%7; //1日の曜日
printf(" ---%d年%d月---\n",y,m);
printf(" sun mon tue wed thu fri sat\n");
for(i=0;i<week*4;i++)
printf(" ");
for(i=1;i<=month[m];i++){
printf("%4d",i);
if((week+i)%7==0)
printf("\n");
}
}
}