Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <time.h>
#define ESC 0x1b
#define ENTER 0xd
#define TAB 0x09
#define SHIFT_TAB 0x0f
#define PGUP 0x49
#define PGDN 0x51
#define UPARROW 0x48
#define DNARROW 0x50
#define LEFTARROW 0x4b
#define RIGHTARROW 0x4d
#define HOME 0x47
#define END 0x4f
#define BACKSPACE 0x08
#define INSERT 0x52
#define DELETE 0x53
struct takvimkayit
{
char note[50],kontrol[5],dakika[5],saat[5],gun[5],ay[5],yil[5];
};
int ay_gun[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char* boslukaltcizgi(char cumle[50])//bosluklu yaziyi altcizgili hale getirir
{
char temp[50];
strcpy(temp,cumle);
int i;
for(i=0;temp[i]!='\0';i++)
if(temp[i]==' ')
temp[i]='_';
return temp;
}
char* altcizgibosluk(char cumle[50])//altcizgili yaziyi bosluklu hale getirir
{
char temp[50];
strcpy(temp,cumle);
int i;
for(i=0;temp[i]!='\0';i++)
if(temp[i]=='_')
temp[i]=' ';
return temp;
}
int takvimkayitsayisi()
{
int i;
char tempdakika[5],tempsaat[5],tempgun[5],tempay[5],tempyil[5],tempnote[50];
FILE *takvimdosya;
takvimdosya=fopen("takvim.txt","r");
struct takvimkayit takvim;
for (i=0;;i++)
{
fscanf(takvimdosya,"%s%s%s%s%s%s%s",&takvim.kontrol,&takvim.dakika,&takvim.saat,&takvim.gun,&takvim.ay,&takvim.yil,&takvim.note);
if ((strcmp(tempdakika,takvim.dakika)==0)&&(strcmp(tempsaat,takvim.saat)==0)&&(strcmp(tempgun,takvim.gun)==0)&&(strcmp(tempay,takvim.ay)==0)&&(strcmp(tempyil,takvim.yil)==0)&&(strcmp(tempnote,takvim.note)==0))
{fclose (takvimdosya);return i;}
strcpy(tempdakika,takvim.dakika);
strcpy(tempsaat,takvim.saat);
strcpy(tempgun,takvim.gun);
strcpy(tempay,takvim.ay);
strcpy(tempyil,takvim.yil);
strcpy(tempnote,takvim.note);
}
fclose(takvimdosya);
}
int count_(int gelen)//int icin basamak kontrolu
{
int sayac=0,basamak=0;
while(gelen!=0)
{
basamak=gelen%10;
gelen=gelen/10;
sayac++;
}
return sayac;
}
int converter(char gelen)
{
if(gelen>47 && gelen<58)
{
return gelen=gelen-48;
}else
{
return -1;
}
}
int sayilari_topla(char gelen[])
{
int j=strlen(gelen),sayi,i=1,k=0,toplam=0;
int dondur=0;
while(j-1>0) { i *=10; j--;}
j=strlen(gelen);
while(k<j)
{
sayi=converter(*gelen);
toplam += sayi*i;
gelen++; k++; i /=10;
dondur=toplam;
}
return dondur;
}
int saatmi(char gelen[50])//saat kontrolu
{
int sayac=0,j=0,sinir=strlen(gelen),saat_sinir,dakika_sinir,birkez=0,kontrol=1;
char *parcala,*temp;
parcala=(char *)malloc(100*sizeof(char));
temp=(char *)malloc(100*sizeof(char));
strcpy(temp,gelen);
while(gelen[j]!='\0')
{
// secim 0 sadece rakam olup olmadıgına bakar..istisna 1 tanedir..doğru deger dönerse 1 sonucu elde edilir
if( (gelen[j]>46 && gelen[j]<58))
{
kontrol=0;
}else if(gelen[j]==58)
{
kontrol=0;
birkez++;
if(birkez==1 && (j==1 || j==2)) kontrol=0; else return kontrol=1;
}else return kontrol=1;
j++;
}
// : dan birden fazla varsa 0 yolluyoruz
if(birkez==0) return 1;
parcala=strtok(temp,":");
sayac=sayilari_topla(parcala);
saat_sinir=count_(sayac);
if( (gelen[1]==':' && sinir==4) || (gelen[2]==':' && sinir==5) )
{
if( (sayac>=0 && sayac<24) )
{
parcala=strtok(NULL," ");
sayac=sayilari_topla(parcala);
dakika_sinir=count_(sayac);
if( (sayac>=0 && sayac<60))
{
return 0;
}else
{return 1;}
}else
{return 1;}
}else {return 1;}
if((kontrol==1 && birkez==1) && j==4 || j==5) return kontrol=0; else return kontrol=1;
}
unsigned __stdcall alarmkontrol( void* pArguments )//arka planda calisan alarm kontrolcusu
{
int i;
FILE *takvimdosya;//Buradan başlayıp alttaki while döngüsüne kadar olan kısım takvim.txt yi açıp içinde saatleri program açıldığı andaki saatle kontrol ediyor ve program kapalı iken zamanı geçmiş bir alarm varsa program ilk çalıştığında uyarıyor
time_t anlikzaman;
struct tm *anlikzamanbilgi;
struct takvimkayit takvim;
time(&anlikzaman);//anlık zamanı aldık
anlikzamanbilgi=localtime(&anlikzaman);//anlık zamanı tm structı türünde bir structa attık
takvimdosya=fopen("takvim.txt","r+");//takvim.txt dosyasını açtık
for (i=0;i<takvimkayitsayisi();i++)//takvimdeki her kayıdı tek tek anlık zamanla karşılaştırdık
{
fscanf(takvimdosya,"%s%s%s%s%s%s%s",&takvim.kontrol,&takvim.dakika,&takvim.saat,&takvim.gun,&takvim.ay,&takvim.yil,&takvim.note);
if ((atoi(takvim.yil)<anlikzamanbilgi->tm_year+1900)&&(strcmp(takvim.kontrol,"true")==0))
{
printf("Gecmis Yila Ait Notunuz Var");
strcpy(takvim.note,altcizgibosluk(takvim.note));
printf("\a\a\a\nNotunuz = %-50s\n",takvim.note);
fseek(takvimdosya,-72,SEEK_CUR);
strcpy(takvim.note,boslukaltcizgi(takvim.note));
fprintf(takvimdosya,"fals %2s %2s %2s %2s %4s%50s",takvim.dakika,takvim.saat,takvim.gun,takvim.ay,takvim.yil,takvim.note);
fseek(takvimdosya,2,SEEK_CUR);
}
else if ((atoi(takvim.yil)==anlikzamanbilgi->tm_year+1900)&&(atoi(takvim.ay)<anlikzamanbilgi->tm_mon+1)&&(strcmp(takvim.kontrol,"true")==0))
{
printf("Gecmis Aya Ait Notunuz Var");
strcpy(takvim.note,altcizgibosluk(takvim.note));
printf("\a\a\a\nNotunuz = %-50s\n",takvim.note);
fseek(takvimdosya,-72,SEEK_CUR);
strcpy(takvim.note,boslukaltcizgi(takvim.note));
fprintf(takvimdosya,"fals %2s %2s %2s %2s %4s%50s",takvim.dakika,takvim.saat,takvim.gun,takvim.ay,takvim.yil,takvim.note);
fseek(takvimdosya,2,SEEK_CUR);
}
else if ((atoi(takvim.yil)==anlikzamanbilgi->tm_year+1900)&&(atoi(takvim.ay)==anlikzamanbilgi->tm_mon+1)&&(atoi(takvim.gun)<anlikzamanbilgi->tm_mday)
&&(strcmp(takvim.kontrol,"true")==0))
{
printf("Gecmis Gune Ait Notunuz Var");
strcpy(takvim.note,altcizgibosluk(takvim.note));
printf("\a\a\a\nNotunuz = %-50s\n",takvim.note);
fseek(takvimdosya,-72,SEEK_CUR);
strcpy(takvim.note,boslukaltcizgi(takvim.note));
fprintf(takvimdosya,"fals %2s %2s %2s %2s %4s%50s",takvim.dakika,takvim.saat,takvim.gun,takvim.ay,takvim.yil,takvim.note);
fseek(takvimdosya,2,SEEK_CUR);
}
else if ((atoi(takvim.yil)==anlikzamanbilgi->tm_year+1900)&&(atoi(takvim.ay)==anlikzamanbilgi->tm_mon+1)&&(atoi(takvim.gun)==anlikzamanbilgi->tm_mday)
&&(atoi(takvim.saat)<anlikzamanbilgi->tm_hour)&&(strcmp(takvim.kontrol,"true")==0))
{
printf("Gecmis Saate Ait Notunuz Var");
strcpy(takvim.note,altcizgibosluk(takvim.note));
printf("\a\a\a\nNotunuz = %-50s\n",takvim.note);
fseek(takvimdosya,-72,SEEK_CUR);
strcpy(takvim.note,boslukaltcizgi(takvim.note));
fprintf(takvimdosya,"fals %2s %2s %2s %2s %4s%50s",takvim.dakika,takvim.saat,takvim.gun,takvim.ay,takvim.yil,takvim.note);
fseek(takvimdosya,2,SEEK_CUR);
}
else if ((atoi(takvim.yil)==anlikzamanbilgi->tm_year+1900)&&(atoi(takvim.ay)==anlikzamanbilgi->tm_mon+1)&&(atoi(takvim.gun)==anlikzamanbilgi->tm_mday)
&&(atoi(takvim.saat)==anlikzamanbilgi->tm_hour)&&(atoi(takvim.dakika)<anlikzamanbilgi->tm_min)&&(strcmp(takvim.kontrol,"true")==0))
{
printf("Gecmis Dakikaya Ait Notunuz Var");
strcpy(takvim.note,altcizgibosluk(takvim.note));
printf("\a\a\a\nNotunuz = %-50s\n",takvim.note);
fseek(takvimdosya,-72,SEEK_CUR);
strcpy(takvim.note,boslukaltcizgi(takvim.note));
fprintf(takvimdosya,"fals %2s %2s %2s %2s %4s%50s",takvim.dakika,takvim.saat,takvim.gun,takvim.ay,takvim.yil,takvim.note);
fseek(takvimdosya,2,SEEK_CUR);
}
}
fclose(takvimdosya);
while(1)//burdan sonrası her 5 saniyede bir takvim.txt dosyasındaki saatlerle güncel saati karşılaştıracak
{
time(&anlikzaman);
anlikzamanbilgi=localtime(&anlikzaman);
takvimdosya=fopen("takvim.txt","r+");
for (i=0;i<takvimkayitsayisi();i++)
{
fscanf(takvimdosya,"%s%s%s%s%s%s%s",&takvim.kontrol,&takvim.dakika,&takvim.saat,&takvim.gun,&takvim.ay,&takvim.yil,&takvim.note);
if ((atoi(takvim.dakika)==anlikzamanbilgi->tm_min)&&(atoi(takvim.saat)==anlikzamanbilgi->tm_hour)
&&(atoi(takvim.gun)==anlikzamanbilgi->tm_mday)&&(atoi(takvim.ay)==anlikzamanbilgi->tm_mon+1)&&(atoi(takvim.yil)==anlikzamanbilgi->tm_year+1900)&&(strcmp(takvim.kontrol,"true")==0))
{
strcpy(takvim.note,altcizgibosluk(takvim.note));
printf("\a\a\a\nNotunuz = %-50s\n",takvim.note);
fseek(takvimdosya,-72,SEEK_CUR);//burada satırın başındaki true değerini silip fals değeri yerleştiriyoruz ki bir daha alarm çalmasın
strcpy(takvim.note,boslukaltcizgi(takvim.note));//alt çizgi ile kaydettiğimiz notu alt çizgilerinden arındırım öyle ekrana yazdırıyoruz
fprintf(takvimdosya,"fals %2s %2s %2s %2s %4s%50s",takvim.dakika,takvim.saat,takvim.gun,takvim.ay,takvim.yil,takvim.note);
fseek(takvimdosya,2,SEEK_CUR);//satır sonu karakterini atlamak için
}
}
fclose(takvimdosya);
Sleep(5000);//döngüyü 5 saniyeliğine bekletiyor
}
}
int artikyilmi(yil)//artık yıl kontrol ediyor
{
return (((yil % 4 == 0) && (yil % 100 != 0)) || (yil % 400 == 0));
}
int ilkgun(int gun,int ay,int yil)//girilen ayın ilk gününün hangisi olduğunu buluyor
{
int i;
long toplam = gun;
for (i = 1900; i < yil; i++)
toplam += 365 + artikyilmi(i);
for (i = 0; i < ay - 1; i++)
toplam += ay_gun[i] + ((i == 1)&&(artikyilmi(yil)));
return ((toplam-1)%7);
}
void gunleriyazdir(int ay,int yil,int gunler[42])//gunler[42] dizisini ayın ilk gününe ve artık yıl olup olmadığına göre dolduruyor
{
int i;
for(i=0;i<42;i++)
{
if ((artikyilmi(yil)==1)&&(ay==2))
{
if (i<ilkgun(1 , ay , yil))
gunler[i]=0;
else if
(i<ilkgun(1 , ay , yil)+ay_gun[ay-1]+1)
gunler[i]=i-ilkgun(1 , ay , yil)+1;
else gunler[i]=0;
}
else
{
if (i<ilkgun(1 , ay , yil))
gunler[i]=0;
else if
(i<ilkgun(1 , ay , yil)+ay_gun[ay-1])
gunler[i]=i-ilkgun(1 , ay , yil)+1;
else gunler[i]=0;
}
}
}
void takvimciz(int secim,int ay,int yil,int aktif)//yollanan tarih değerlerine göre ekrana takvimi çizdiren fonksiyon
{//aktif==0 demek o anda yıl satırında işlem yapılıyor demek aktif==1 aylar ve aktif==2 günler satırlarını ifade ediyor
system("cls");
int takvimdizisi[42];
gunleriyazdir(ay,yil,takvimdizisi);
int i,j;
char *gunler[]={"Pazartesi","Sali","Carsamba","Persembe","Cuma","Cumartesi","Pazar"};
printf("\n%9d%16d%16d%16d%16d\n",yil-2,yil-1,yil,yil+1,yil+2);
printf(" ");
if (aktif==0)
{
for (j=1;j<11;j++)
printf("*");//eğer yıllar seçiliyse altındaki satırı yıldızla belirtiyor
}
else
{
for (j=1;j<11;j++)
printf("_");//eğer seçili değilse altçizgi ile belirtiliyor
}
printf("\n\n");
printf(" %6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%6s%7s\n","Ocak","Subat","Mart","Nisan","Mayis","Hazrn","Temmz","Agsts","Eylul","Ekim","Kasim","Aralik"); //Aylarýn yazdýrýldýðý kýsým
printf(" ");
for (i=0;i<ay-1;i++)
printf(" ");
if (aktif==1)
{
for (j=1;j<6;j++)
printf("*");
}
else
{
for (j=1;j<6;j++)
printf("_");
}
printf("\n\n");
printf(" ");
for (j=1;j<77;j++)
printf(" ");
printf(" ");
printf(" ");
for (i=0;i<7;i++)
{
printf(" %-9s ",gunler[i]);
}
printf("\n");
for (i=0;i<13;i++)
{
if (i%2==0)
{
printf(" ");
for (j=0;j<7;j++)
{
if (((((7*i/2+j))==secim+6)||((((7*i)/2+j)+7)==secim+6))&&aktif==2)
printf(" ");
else
printf(" ");
}
printf("\n");
}
if (i%2==1)
{
if ((secim==7*(i-1)/2+j-6)&&(aktif==2))
printf(" :");
else
printf(" ");
for (j=0;j<7;j++)
{
if (((7*(i-1)/2+j==secim-2)||(7*(i-1)/2+j==secim-1))&&(secim%7!=1)&&(aktif==2))
{
if (takvimdizisi[(7*(i-1)/2+j)]==0)
printf(" :",takvimdizisi[(7*(i-1)/2+j)]);
else
printf(" %2d :",takvimdizisi[(7*(i-1)/2+j)]);
}
else if ((7*(i-1)/2+j==secim-1)&&(aktif==2))
{
if (takvimdizisi[(7*(i-1)/2+j)]==0)
printf(" :",takvimdizisi[(7*(i-1)/2+j)]);
else
printf(" %2d :",takvimdizisi[(7*(i-1)/2+j)]);
}
else
{
if (takvimdizisi[(7*(i-1)/2+j)]==0)
printf(" ",takvimdizisi[(7*(i-1)/2+j)]);
else
printf(" %2d ",takvimdizisi[(7*(i-1)/2+j)]);
}
}
printf("\n");
}
}
return 0;
}
void takvimcekirdek()
{
char *kelime;
int aktif=2,gunler[42],i,orjyil,orjay,orjgun,orjsaat,orjdakika;
time_t zaman;
struct tm *zamanbilgi;
time ( &zaman );//burada takvimin ilk açılışına hazırlamak için anlık tarihi alıp ona göre takvim çizdiriyoruz
zamanbilgi = localtime ( &zaman );
orjyil=zamanbilgi->tm_year;
orjay=zamanbilgi->tm_mon;
orjgun=zamanbilgi->tm_mday;
orjsaat=zamanbilgi->tm_hour;
orjdakika=zamanbilgi->tm_min;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,2);
while (1)
{
if(kbhit())
{
switch(getch())
{
case LEFTARROW ://eğer sol tuşa basılırsa neler yapılması gerektiği kısmı
{
if (aktif==0)
{
orjyil--;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;
}
if (aktif==1)
{
if(orjay==0)
{
orjyil--;
orjay=11;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;
}
else
orjay--;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;
}
if (aktif==2)
{
if ((orjgun==1)&&(orjay==0))
{orjay=11;orjgun=31;orjyil--;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
else if ((orjgun==1)&&(orjay!=0))
{orjay=orjay-1;orjgun=ay_gun[orjay];
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
else
{
orjgun--;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);
break;
}
}
}break;
case RIGHTARROW ://eğer sağ tuşa basılırsa neler yapılması gerektiği kısmı
{
if (aktif==0)
{
orjyil+=1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;
}
if (aktif==1)
{
if(orjay==11)
{
orjyil+=1;
orjay=0;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;
}
else
orjay=orjay+1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;
}
if (aktif==2)
{
if ((orjgun==31)&&(orjay==11))
{orjay=0;orjgun=1;orjyil=orjyil+1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
else if ((orjgun==ay_gun[orjay])&&(orjay!=11))
{orjay=orjay+1;orjgun=1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
else
{
orjgun++;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);
break;
}
}
}break;
case DNARROW ://eğer aşağı tuşa basılırsa neler yapılması gerektiği kısmı
{
if (aktif==0)
{
aktif=1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
if (aktif==1)
{
aktif=2;
orjgun=1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
if (aktif==2)
{
if ((orjgun>24)&&(orjay==11))
{orjay=0;orjgun=1;orjyil=orjyil+1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
if ((orjgun>ay_gun[orjay]-7)&&(orjay!=11))
{orjay=orjay+1;orjgun=1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
else
{orjgun=orjgun+7;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
}
}break;
case UPARROW ://eğer yukarı tuşa basılırsa neler yapılması gerektiği kısmı
{
if (aktif==1)
{
aktif=0;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
if (aktif==2)
{
if (orjgun<8)
{
aktif=1;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
else
{orjgun=orjgun-7;
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);break;}
}
}break;
case ESC ://eğer esc tuşa basılırsa neler yapılması gerektiği kısmı
{
{
system("cls");
printf("Takvime Kayit Iptal Edildi\n\n");
return 0;
}
}break;
case ENTER ://eğer enter tuşa basılırsa neler yapılması gerektiği kısmı
{
if ((aktif==2)&&((zamanbilgi->tm_year<orjyil)||((zamanbilgi->tm_year==orjyil)&&(zamanbilgi->tm_mon<orjay))||((zamanbilgi->tm_year<=orjyil)&&(zamanbilgi->tm_mon<=orjay)&&(zamanbilgi->tm_mday<=orjgun))))
{
system("cls");
char notsaati[50],note[50],yazdirilacak[100],strsaat[5],strdakika[5];
int saat,dakika;
FILE *takvimdosya;
do
{
printf("Notunuzu Giriniz:\n");
fflush(stdin);
gets(note);
system("cls");
strcpy(note,boslukaltcizgi(note));
if (strlen(note)>49)
printf("Not 49 Karakterden Uzun Olamaz\n");
}while (strlen(note)>49);
do
{
printf("Giris Yapmak Istediginiz Saati Giriniz:\n");//girilen saati saat ve dakikaya ayırıp güncel saatle karşılaştırıyor ve eğer gelecek zamansa notu kaydediyor
fflush(stdin);
gets(notsaati);
system("cls");
if (saatmi(notsaati)!=0)
printf("Giris Bir Saat Degil\n");
else
{
if (strlen(notsaati)==5)
{
strncpy(strsaat,notsaati,2);
strsaat[2]='\0';
strncpy(strdakika,notsaati+3,2);
strdakika[2]='\0';
saat=atoi(strsaat);
dakika=atoi(strdakika);
}
else if (strlen(notsaati)==4)
{
strncpy(strsaat,notsaati,1);
strsaat[1]='\0';
strncpy(strdakika,notsaati+2,2);
strdakika[2]='\0';
saat=atoi(strsaat);
dakika=atoi(strdakika);
}
orjsaat=saat;
orjdakika=dakika;
time ( &zaman );
zamanbilgi = localtime ( &zaman );
if (((zamanbilgi->tm_year==orjyil)&&(zamanbilgi->tm_mon==orjay)&&(zamanbilgi->tm_mday==orjgun)&&(zamanbilgi->tm_hour>orjsaat))||
((zamanbilgi->tm_year==orjyil)&&(zamanbilgi->tm_mon==orjay)&&(zamanbilgi->tm_mday==orjgun)&&(zamanbilgi->tm_hour==orjsaat)&&(zamanbilgi->tm_min+1>orjdakika)))
printf("Gecmis Zamana Not Giremezsiniz\n");
}
}while((saatmi(notsaati)!=0)||((zamanbilgi->tm_year==orjyil)&&(zamanbilgi->tm_mon==orjay)&&(zamanbilgi->tm_mday==orjgun)&&(zamanbilgi->tm_hour>orjsaat))||
((zamanbilgi->tm_year==orjyil)&&(zamanbilgi->tm_mon==orjay)&&(zamanbilgi->tm_mday==orjgun)&&(zamanbilgi->tm_hour==orjsaat)&&(zamanbilgi->tm_min+1>orjdakika)) ) ;
takvimdosya=fopen("takvim.txt","a");
fprintf(takvimdosya,"true %2d %2d %2d %2d %4d%50s\n",orjdakika,orjsaat,orjgun,orjay+1,orjyil+1900,note);
fclose(takvimdosya);
printf("Notunuz Takvime Basariyla Eklendi\n");
return 0;
}
else if (aktif==2)
{
takvimciz(orjgun+ilkgun(1 ,orjay+1,orjyil+1900),orjay+1,orjyil+1900,aktif);
printf(" Gecmis Tarihe Not Giremezsiniz\n");
break;
}
}break;
}
}
}
}
int main()
{
HANDLE hThread;
unsigned threadID;
hThread = (HANDLE)_beginthreadex( NULL, 0, &alarmkontrol, NULL, 0, &threadID );//bu kod alarmı arka planda bir thread olarak çalıştırmaya yarayan kod _beginthreadex fonksiyonu windows.h kütüphaneisnde blunuyor
takvimcekirdek();//takvimi başlatan fonksiyon
return 0;
}