আপডেট

Friday, February 13, 2015

অস্থির ক্যালেন্ডার প্রোজেক্ট ইউজিং... C... ল্যাঙ্গুয়েজ !!!


কেমন আছেন সবাই , আজ আপনাদের সামনে নিয়ে আসলাম একটি আতি গুরত্তপূর্ণ প্রজেক্ট...( ভারসিটির টিচারদের অত্যন্ত প্রিয় )

এই source code দেখে প্রথমেই গাব্রে যাওয়ার কিচ্ছু নেই, অল্প অল্প করে বোঝার চেষ্টা করুন । প্রথমেই code এর মধ্যে ঝাপ

দিয়া পরবেননা । প্রথমে ফাংশন গুলু বুঝে এগুন, দেখবেন সব কিছু পানির মতো সহজ হয়ে গেছে ।



ফিচার সমুহ ঃ

১. আজিবনের ক্যালেন্ডার ।

২. নির্দিষ্ট দিন দেখে নিন মুহূর্তেই ।

ক্যালেন্ডার প্রোজেক্ট সোর্স কোড ঃ

 
 #include<stdio.h>  
 ///prototype of Full calender......  
 void calendar(int year, int daycode);  
 int inputyear();  
 int determinedaycode(int year);  
 int determineleapyear(int year);  
 ///..............................  
 ///prototype of special day......  
 int fm(int date, int month, int year);  
 int week_day(int date, int month, int year);  
 ///.................................  
 ///Global variable..................  
 int days_in_month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};  
 char *months[]=  
 {  
   " ",  
   "\n\n\nJanuary",  
   "\n\n\nFebruary",  
   "\n\n\nMarch",  
   "\n\n\nApril",  
   "\n\n\nMay",  
   "\n\n\nJune",  
   "\n\n\nJuly",  
   "\n\n\nAugust",  
   "\n\n\nSeptember",  
   "\n\n\nOctober",  
   "\n\n\nNovember",  
   "\n\n\nDecember"  
 };  
 ///.............................  
 int main()  
 {  
   int date, month;  
   int year, daycode, leapyear,k;  
   char a,b;  
 do{  
   ///.............Menu Start...............  
   printf("\t\n\n    .............Calender software.............\n\n\n");  
   printf("\t1. See Full Calender\n");  
   printf("\n\t2. See a Special Date\n");  
   printf("\n\t3. EXIT\n");  
   printf("\n\tGive your choice....: ");  
   ///.......Menu End................  
   scanf("%d",&k);  
   switch(k)  
   {  
   ///.........call full calender...........  
   case 1:  
     {  
   year = inputyear();  
   daycode = determinedaycode(year);  
   determineleapyear(year);  
   calendar(year, daycode);  
   printf("\n\n............................. End Of Year %d................................",year);  
   printf("\n");  
   break;  
     }  
    ///.....call special day.......  
   case 2:  
     {  
        printf("\nEnter the year : ");  
   scanf("%d", &year);  
 start1:  
   printf("\nEnter the month : ");  
   scanf("%d", &month);  
   if(month>0&&month<=12)  
   {  
  start2:  
   printf("\nEnter the date : ");  
   scanf("%d", &date);  
   if(date>0&&date<=31)  
     {  
   week_day(date, month, year);  
     }  
   else{  
     printf("\n....Insert date between 1 to 31....\n");  
     goto start2;  
     }  
   }  
   else  
   {  
   printf("\n....Insert month between 1 to 12....\n");  
   goto start1;  
   }  
     }  
   default :  
     break;  
   }  
  printf("\n\nDo you want to continue...( Press 'y' for YES.. OR ..Press 'n' for NO) : ");  
   b=getch(a);  
 }while(b=='y');  
   return 0;  
 }  
 ///....................code start of See full calender............  
 int inputyear()  
 {  
   int year;  
   printf("\n\nPlease enter a year < example: 2015 > : ");  
   scanf("%d", &year);  
   printf("\n\n..............................Start Of Year %d ...............................",year);  
   return year;  
 }  
 int determinedaycode(int year)  
 {  
   int daycode;  
   int d1, d2, d3;  
   d1 = (year - 1)/ 4;  
   d2 = (year - 1)/ 100;  
   d3 = (year - 1)/ 400;  
   daycode = (year + d1 - d2 + d3) %7;  
   return daycode;  
 }  
 int determineleapyear(int year)  
 {  
   if(year% 4 == 0 && year%100 != 0 || year%400 == 0)  
   {  
     days_in_month[2] = 29;  
     return 1;  
   }  
   else  
   {  
     days_in_month[2] = 28;  
     return 0;  
   }  
 }  
 void calendar(int year, int daycode)  
 {  
   int month, day;  
   for ( month = 1; month <= 12; month++ )  
   {  
     printf("%s", months[month]);  
     printf("\n\nSun Mon Tue Wed Thu Fri Sat\n" );  
     for ( day = 1; day <= 1 + daycode * 5; day++ )  
     {  
       printf(" ");  
     }  
     for ( day = 1; day <= days_in_month[month]; day++ )  
     {  
       printf("%2d", day );  
       if ( ( day + daycode ) % 7 > 0 )  
         printf("  " );  
       else  
         printf("\n " );  
     }  
       daycode = ( daycode + days_in_month[month] ) % 7;  
   }  
 }  
 ///...................code start of see a special day.........  
 int fm(int date, int month, int year) {  
   int fmonth, leap;  
   if ((year % 100 == 0) && (year % 400 != 0))  
    leap = 0;  
   else if (year % 4 == 0)  
    leap = 1;  
   else  
    leap = 0;  
   fmonth = 3 + (2 - leap) * ((month + 2) / (2 * month))  
      + (5 * month + month / 9) / 2;  
   fmonth = fmonth % 7;  
   return fmonth;  
 }  
 int week_day(int date, int month, int year) {  
   int day_Week;  
   int Y = year % 100;  
   int century = year / 100;  
   printf("\nDate: %d/%d/%d ", date, month, year);  
   day_Week = 1.25 * Y + fm(date, month, year) + date - 2 * (century % 4);  
   day_Week = day_Week % 7;  
   switch (day_Week) {  
    case 0:  
      printf("\tweekday = Saturday\n");  
      break;  
    case 1:  
      printf("\tweekday = Sunday\n");  
      break;  
    case 2:  
      printf("\tweekday = Monday\n");  
      break;  
    case 3:  
      printf("\tweekday = Tuesday\n");  
      break;  
    case 4:  
      printf("\tweekday = Wednesday\n");  
      break;  
    case 5:  
      printf("\tweekday = Thursday\n");  
      break;  
    case 6:  
      printf("\tweekday = Friday\n");  
      break;  
    default:  
      printf("Incorrect data");  
   }  
   return 0;  
 }