カレンダー
C
#include<stdio.h>
int main(){
int days[] = {31,28,31,30,31,30,31,30,31,31,30,31,30,31};
int y, m, d, i, k;
printf("y=");
scanf("%d", &y);
printf("m=");
scanf("%d", &m);
if(1583>y || y>4000 || 1>m || m>12) return 1;
printf("\n%d/%d\n\n", y, m);
d = days[m-1];
if(m==2 && (y%4==0&&y%100!=0||y%400==0)) d++;
if(m==1 || m==2){
y--;
m += 12;
}
k = (y+(int)(y/4)-(int)(y/100)+(int)(y/400)+(int)((13*m+8)/5)+1) % 7;
printf("日 月 火 水 木 金 土\n");
for(i=0; i<k; i++) printf(" ");
for(i=1; i<=d; i++){
printf("%2d ", i);
if(++k%7==0) printf("\n");
}
printf("\n");
return 0;
}
C++
#include<iostream>
using namespace std;
int main()
{
int days[] = {31,28,31,30,31,30,31,30,31,31,30,31,30,31};
int y, m, d, i, k;
cout<<"y="; cin>>y;
cout<<"m="; cin>>m;
if(1582>=y || y>=4000 || 1>m || m>12) return 1;
cout<<'\n'<<y<<'/'<<m<<"\n\n";
d = days[m-1];
if(m==2 && (y%4==0&&y%100!=0||y%400==0)) d++;
if(m==1 || m==2)
{
y--;
m += 12;
}
k = (y+(int)(y/4)-(int)(y/100)+(int)(y/400)+(int)((13*m+8)/5)+1) % 7;
cout<<" 日 月 火 水 木 金 土\n";
for(i=0; i<k; i++)cout<<" ";
for(i=1; i<=d; i++)
{
cout.width(3);
cout<<i;
if(++k%7 == 0) cout<<'\n';
}
cout<<endl;
return 0;
}
最終更新:2010年08月05日 22:55