crysoberil

Untitled

Oct 3rd, 2011
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.20 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<iostream.h>
  4. int year[]={31,28,31,30,31,30,31,31,30,31,30,31};
  5. int change(int mm, unsigned long yy);
  6. int leapyear(unsigned long a);
  7. int main()
  8. {
  9.     int mm,mmm;
  10.     unsigned long yy;
  11.     do
  12.     {
  13.     system("cls");
  14.     printf("\n\tInsert Month\t: ");
  15.     scanf("%d",&mm);
  16.     printf("\n\tInsert Year\t: ");
  17.     scanf("%lu",&yy);
  18.     }
  19.     while(mm>12||yy<1900);
  20.     int day2,i;
  21.     char q;
  22.     char month[12][10]={"January","Fevruary","March","April","May","June","July","August","September","October","November","December"};
  23.     do
  24.     {
  25.         system("cls");
  26.         mmm=year[mm-1];
  27.         if(mm==2)
  28.         {
  29.             if(leapyear(yy))
  30.                 mmm=29;
  31.         }
  32.         day2=change(mm,yy);
  33.         if(day2==0)
  34.         {
  35.                    day2=7;
  36.         }
  37.         printf("\n\n\n\n\n\t\t\t%s, %d\n\n\n",month[mm-1],yy);
  38.         printf("\tSat\tSun\tMon\tTue\tWed\tThu\tFri\n\n");
  39.         for(i=1;i<day2;i++)
  40.         {
  41.             printf("\t ");
  42.         }
  43.         for(i=1;i<=mmm;i++)
  44.         {
  45.             printf("\t%d",i);
  46.             if(day2>6)
  47.             {
  48.                 printf("\n");
  49.                 day2=1;
  50.                 continue;
  51.             }
  52.             day2++;
  53.         }
  54.         printf("\n\n\n\n\n\n\n\nh - Help");
  55.         q=getch();
  56.         if(q=='s'&&yy==1900)
  57.         continue;
  58.         if(q=='a'&&yy==1900&&mm==1)
  59.         continue;
  60.         switch(q)
  61.         {
  62.         case 'w':
  63.             yy++;
  64.             break;
  65.         case 'a':
  66.             if(mm==1)
  67.             {
  68.                 mm=12;
  69.                 yy--;
  70.             }
  71.             else
  72.             mm--;
  73.             break;
  74.         case 's':
  75.             yy--;
  76.             break;
  77.         case 'e':
  78.              system("cls");
  79.              do
  80.              {
  81.                   printf("\n\tInsert Month\t: ");
  82.                   scanf("%d",&mm);
  83.                   printf("\n\tInsert Year\t: ");
  84.                   scanf("%d",&yy);
  85.              }
  86.              while(mm>12||yy<1900);
  87.              break;
  88.         case 'd':
  89.             if(mm==12)
  90.             {
  91.                 mm=1;
  92.                 yy++;
  93.             }
  94.             else
  95.             {
  96.                 mm++;
  97.             }
  98.             break;
  99.         case 'h':
  100.              system("cls");
  101.              printf("\n\nw - Next year, same month\ns - Previous year, same month\na - Same year, previous month\nd - Same year, next month\ne - Jump to date\nAny other key to exit\n\nPress any key to go back to calender view");
  102.              getch();
  103.              break;
  104.         default:
  105.             return 0;
  106.         }
  107.     }
  108.     while(1);
  109. }
  110. int change(int mm, unsigned long yy)
  111. {
  112.     int day1=3,month1=1;
  113.     unsigned long year1=1900;
  114.     int i;
  115.     for(;!(month1==mm&&year1==yy);)
  116.     {
  117.         day1+=year[month1-1];
  118.         if(month1==2&&leapyear(year1))
  119.         {
  120.             day1++;
  121.         }
  122.         day1%=7;
  123.         month1++;
  124.         if(month1>12)
  125.         {
  126.             month1=1;
  127.             year1++;
  128.         }
  129.     }
  130.     return day1;
  131. }
  132. int leapyear(unsigned long a)
  133. {
  134.     if( (a%400==0) || (a%4==0&&a%100!=0) )
  135.     {
  136.         return 1;
  137.     }
  138.     return 0;
  139. }
  140.  
  141.  
Add Comment
Please, Sign In to add comment