PDA

Tüm Versiyonu Göster : takvim


yyuzuak
16-02-08, 23:17
#include <stdio.h>
#include <stdlib.h>
//coded by tufan

enum AY{OCAKSUBATMARTNISANMAYISHAZIRANTEMMUZ AGUSTOSEYLULEKIMKASIMARALIK};
enum GUN{PAZARTESISALICARSAMBAPERSEMBE CUMACUMARTESIPAZAR};
int gun_sayisi[12]={312831303130313130313031};

enum GUN _1OCAK(int YILint REF_YILenum AY REF_AYint ayin_gunuenum GUN REF_GUN)
{
int i;
int toplam_gun_farki;
enum GUN _1oc;
int artik_yil;
int kucuk_olan=YIL>REF_YIL?REF_YIL:YIL;
int yil_farki=(YIL-REF_YIL)<0?-(YIL-REF_YIL):(YIL-REF_YIL);
enum GUN kendi_1oc;
int _1oca_gunfarki=0;
for(i=OCAK;i<REF_AY;i++)
{
_1oca_gunfarki+=gun_sayisi[i];
}
if(REF_AY>SUBAT&&REF_YIL%4==0)
_1oca_gunfarki+=1;
_1oca_gunfarki+=ayin_gunu;
_1oca_gunfarki--; //kendini cikar
kendi_1oc=((REF_GUN-(_1oca_gunfarki%7))
<0?7+REF_GUN-(_1oca_gunfarki%7)
:REF_GUN-(_1oca_gunfarki%7));

artik_yil=0;
for(i=kucuk_olan;i<kucuk_olan+yil_farki;i++)
{
if(i%4==0)
artik_yil++;
}
toplam_gun_farki=0;
for(i=0;i<12;i++)
toplam_gun_farki+=gun_sayisi[i];
toplam_gun_farki*=yil_farki;
toplam_gun_farki+=artik_yil;
_1oc=kucuk_olan==REF_YIL?(kendi_1oc+(toplam_gun_farki%7))%7
:((kendi_1oc-(toplam_gun_farki%7))
<0?7+kendi_1oc-(toplam_gun_farki%7)
:kendi_1oc-(toplam_gun_farki%7));
return _1oc;
}
void ay_yazdir(enum AY _ay)
{
switch(_ay)
{
case OCAK:
printf("\t\t\tOCAK\n");
break;
case SUBAT:
printf("\t\t\tSUBAT\n");
break;
case MART:
printf("\t\t\tMART\n");
break;
case NISAN:
printf("\t\t\tNISAN\n");
break;
case MAYIS:
printf("\t\t\tMAYIS\n");
break;
case HAZIRAN:
printf("\t\t\tHAZIRAN\n");
break;
case TEMMUZ:
printf("\t\t\tTEMMUZ\n");
break;
case AGUSTOS:
printf("\t\t\tAGUSTOS\n");
break;
case EYLUL:
printf("\t\t\tEYLUL\n");
break;
case EKIM:
printf("\t\t\tEKIM\n");
break;
case KASIM:
printf("\t\t\tKASIM\n");
break;
case ARALIK:
printf("\t\t\tARALIK\n");
break;
}
}
void gun_gostergesi()
{
printf("Pzt\tSal\tCar\tPer\tCum\tCmr\tPaz\n");
}
karakter_yaz(int kere)
{
int i;
for(i=0;i<kere;i++)
printf("\t");
}
void takvimi_yazdir(int yilenum GUN _1oc)
{
enum AY i;
enum GUN c=_1oc;
printf("\t\t%d YILI TAKVIMI\n\n"yil);
for(i=OCAK;i!=ARALIK;i++)
{
int j;
int g_sayisi;
ay_yazdir(i);
gun_gostergesi();
karakter_yaz(c);
g_sayisi=gun_sayisi[i];
if(yil%4==0&&i==SUBAT)
g_sayisi=29;
for(j=1;j<g_sayisi+1;j++)
{

if(j<10)
printf(" ");
printf(" %d\t"j);
c++;
if(c>PAZAR)
{
printf("\n");
c=PAZARTESI;
}
}
printf("\n\n");
}
}


int main()
{
enum GUN gun_1;
int yil;
printf("Yili giriniz: ");
scanf("%d"yil);
gun_1=_1OCAK(yil1980OCAK1SALI);
takvimi_yazdir(yilgun_1);
fflush(stdin);
getchar();
return 0;
}