ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

初心者の為のC言語コミュの経過日数とカレンダーについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
#include "stdafx.h"


typedef struct{
int y;
int m;
int d;
}YMD;


static int mdays[2][13] = {
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31},
};

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

int sa (YMD x,YMD y)
{
int i,j,k;
i=0;

i += mdays[isleap(y.y)][y.m]-y.d;

for(j=y.y+1;j<=12;j++){
for(k=1;k<=12;k++)
i += mdays[isleap(y.y)][j];
}
for(j=y.m+1;j<=12;j++)
i += mdays[isleap(y.m)][j];

for(j=y.d;j<=y.m;j++)
i += mdays[isleap(y.m)][j];
i += x.d;




return(i);
}



int _tmain(int argc, _TCHAR* argv[])
{

YMD x,y;

printf("今日の日付を入力してください。\n");
printf("年:"); scanf("%d", &x.y);
printf("月:"); scanf("%d", &x.m);
printf("日:"); scanf("%d", &x.d);

printf("誕生日を入力してください。\n");
printf("年:"); scanf("%d", &y.y);
printf("月:"); scanf("%d", &y.m);
printf("日:"); scanf("%d", &y.d);


printf("経過日数は%d日です。",sa(x,y));


return 0;
}


誕生日から今日の日付までの経過日数の計算が合わないのでアドバイスおねがいします。
また、誕生月のカレンダー作成の方法をよろしくおねがいします

コメント(0)

mixiユーザー
ログインしてコメントしよう!

初心者の為のC言語 更新情報

初心者の為のC言語のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。