FC2ブログ

Welcome to my blog

スポンサー広告

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ブログランキング参加中

見たらクリックしてもらえると、とっても嬉しいです!!
ぼくの苦手なC言語

西暦・月・日を入力したら曜日を出力するプログラム

0
僕のメモ書きです。
大学1年のときに書いたコードなのであまり参考にはならないかもしれません。
西暦・月・日を入力したら曜日(番号)を出力するC言語プログラムです。

#include <stdio.h>

int calc_youbi(int y, int m, int d){
  int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  long dayall;
  int i,y1,m1,k;

  /*うるう年に対応させる*/
  /* yが4で割り切れて100で割り切れない もしくは yが400で割り切れるならば */  
  if(((y%4)==0&&(y%100)!=100) || (y%400)==0){  
    day[2]=29;
  }
  y1=y-1;
  m1=m-1;

  /* 1年前12月31日までの総日数 */  
        dayall=(long)(y1)*365+(y1)/400+(y1)/4-(y1)/100; 

  /*一ヶ月前まで日数と足し込む*/
        if(m!=1){
                for(i=1;i<=m1;i++){
                        dayall+=day[i];
                }
        }

  /* dをdayallに足し込む */   
  dayall+=d;
  /* dayallを7で割った余りをkとし */ 
  k=(dayall%7);

  return k;
}

int main(void){
  int y,m,d,youbi_num;
  char youbi[7][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

  printf("enter year : ");
  scanf("%d", &y);
  printf("enter month: ");
  scanf("%d", &m);
  printf("enter day  : ");
  scanf("%d", &d);

  youbi_num=calc_youbi(y,m,d);

  printf("youbi number=%d\n",youbi_num);
  printf("youbi name=%s\n",youbi[youbi_num]);
}

ブログランキング参加中

見たらクリックしてもらえると、とっても嬉しいです!!
C言語プログラム

- 0 Comments

There are no comments yet.

Leave a reply

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。