কেমন আছেন সবাই , আজ আপনাদের সামনে নিয়ে আসলাম একটি আতি গুরত্তপূর্ণ প্রজেক্ট...( ভারসিটির টিচারদের অত্যন্ত প্রিয় )
এই 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;
}