IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   C ve C++ (https://www.ircforumlari.net/c-ve-c/)
-   -   Alarmlı Not Defteri (https://www.ircforumlari.net/c-ve-c/454047-alarmli-not-defteri.html)

aSi 17 Şubat 2012 23:45

Alarmlı Not Defteri
 
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Girilen güne göre alarm kuran ve zamanı geldiginde sesli uyarı veren bir alarmlı not defteridir.Geçmiş tarihe not girişi yasaktır.( Hakkı Yiğit Yener Desteğiyle Yapılmştır.

Kod:

#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;
}




Nickolas 17 Şubat 2012 23:56

Cevap: Alarmlı Not Defteri
 
Oldukça başarılı görünüyor. Eline sağlık :)


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 09:37.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk