Advertisement
AshfaqFardin

Calendar Application

Aug 6th, 2021
933
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.29 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. string starting_day;
  5.  
  6. struct reminder{
  7.     string reminderTitle;
  8.     string reminderDescript;
  9.     int reminderDate;
  10.     string reminderMonth;
  11.    
  12.     reminder* next;
  13. };
  14.  
  15. reminder* head = NULL;
  16.  
  17. void addReminder(){
  18.     reminder* new_reminder = new reminder;
  19.     cout << "Reminder Title: ";
  20.     cin >> new_reminder->reminderTitle;
  21.    
  22.     cout << "Reminder Description: ";
  23.     cin >> new_reminder->reminderDescript;
  24.    
  25.     cout << "Reminder Date: ";
  26.     cin >> new_reminder->reminderDate;
  27.    
  28.     cout << "Reminder Month: ";
  29.     cin >> new_reminder->reminderMonth;
  30.    
  31.     new_reminder->next = NULL;
  32.    
  33.     if(head == NULL){
  34.         head = new_reminder;
  35.     }
  36.     else{
  37.         reminder* temp_rem = head;
  38.         while(temp_rem->next != NULL){
  39.             temp_rem = temp_rem->next;
  40.         }
  41.         temp_rem->next = new_reminder;
  42.     }
  43. }
  44.  
  45. void updateReminder(){
  46.     reminder* new_reminder = new reminder;
  47.     cout << "Reminder Title: ";
  48.     cin >> new_reminder->reminderTitle;
  49.    
  50.     cout << "Reminder Date: ";
  51.     cin >> new_reminder->reminderDate;
  52.    
  53.     cout << "Reminder Month: ";
  54.     cin >> new_reminder->reminderMonth;
  55.    
  56.     new_reminder->next = NULL;
  57.    
  58.     if(head == NULL){
  59.         cout << "No reminder found\n";
  60.     }
  61.     else{
  62.         reminder* temp_rem = head;
  63.         while(temp_rem!= NULL){
  64.             if(temp_rem->reminderTitle == new_reminder->reminderTitle){
  65.                 if(temp_rem->reminderDate == new_reminder->reminderDate){
  66.                     if(temp_rem->reminderMonth == new_reminder->reminderMonth){
  67.                         cout << "Update Reminder Description: ";
  68.                         cin >> new_reminder->reminderDescript;
  69.                         temp_rem = new_reminder;
  70.                     }
  71.                 }
  72.             }
  73.             else{
  74.                 temp_rem = temp_rem->next;
  75.             }
  76.         }
  77.     }
  78. }
  79.  
  80. int option;
  81. void calendarOptions(){
  82.     cout << "0. Exit from the calendar\n";
  83.     cout << "1. Add reminder\n";
  84.     cout << "2. Update reminder\n";
  85.     cout << "3. Delete a specific reminder\n";
  86.     cout << "4. View all the reminders of a specific month\n";
  87.     cout << "\n";
  88.     cout << "Choose option: ";
  89.    
  90.    
  91.     cin >> option;
  92.     if(option == 0){
  93.         return;
  94.     }
  95.     else if(option == 1){
  96.         addReminder();
  97.     }
  98.     else if(option == 2){
  99.         updateReminder();
  100.     }
  101.     else if(option == 3){
  102.         // delReminder();
  103.     }
  104.     else if(option == 4){
  105.         // viewReminder();
  106.     }
  107.     else{
  108.         cout << "Invalid Option\n";
  109.     }
  110.    
  111. }
  112.  
  113. //unfinished reminder part
  114.  
  115. void printDates(int days_in_month[], int month, string startDay[]){
  116.     int** dayArray = new int*[6];
  117.     for(int i = 0; i < 6; i++){
  118.         dayArray[i] = new int[7];
  119.     }
  120.     for(int i = 0; i < 6; i++){
  121.         for(int j = 0; j < 7; j++){
  122.             dayArray[i][j] = 0;
  123.         }
  124.     }
  125.     int dayCount = 1;
  126.     int l = 0;
  127.     while(startDay[l] != starting_day){
  128.         cout << "     ";
  129.         l++;
  130.     }
  131.     //first row
  132.     for(int i = l; i < 7; i++){
  133.         dayArray[0][i] = dayCount;
  134.         cout << dayArray[0][i] << "    " ;
  135.         dayCount++;
  136.     }
  137.     cout << endl;
  138.     //rest of the rows
  139.     for(int i = 1; i < 6; i++){
  140.         //print numbers
  141.         for(int j = 0; j < 7; j++){
  142.             if(dayCount <= days_in_month[month]){
  143.                 dayArray[i][j] = dayCount;
  144.                
  145.                 if(dayCount < 10){
  146.                     cout << dayArray[i][j] << "    " ;
  147.                 }
  148.                 else {
  149.                     cout << dayArray[i][j] << "   " ;
  150.                 }
  151.                 dayCount++;
  152.             }
  153.         }
  154.         cout << endl;
  155.     }
  156.    
  157.     //update strating day
  158.     int countDays = 0; // starting day index
  159.     for(int i = 0; i < 7; i++){
  160.         if(starting_day == startDay[i]){
  161.             countDays = i;
  162.         }
  163.     }
  164.     if(days_in_month[month] % 7 == 3){
  165.         int temp = countDays + 3;
  166.         if(temp > 6){
  167.             starting_day = startDay[temp - 7];
  168.         }
  169.         else if(countDays < 4){
  170.             starting_day = startDay[countDays + 3];
  171.         }
  172.     }
  173.    
  174.     else if(days_in_month[month] % 7 == 2){
  175.         int temp = countDays + 2;
  176.         if(temp > 6){
  177.             starting_day = startDay[temp - 7];
  178.         }
  179.         else if(countDays < 5){
  180.             starting_day = startDay[countDays + 2];
  181.         }
  182.     }
  183.    
  184.     else if(days_in_month[month] % 7 == 1){
  185.         int temp = countDays + 1;
  186.         if(days_in_month[month] % 7 == 1){
  187.             if(temp > 6){
  188.                 starting_day = startDay[temp - 7];
  189.             }
  190.             else if(countDays < 6){
  191.                 starting_day = startDay[countDays + 1];
  192.             }
  193.         }
  194.     }
  195.    
  196. }
  197.  
  198. bool checkLeapYear(int year){
  199.     if(year % 4 == 0){
  200.         if(year % 100 == 0){
  201.             if(year % 400 == 0){
  202.                 return true;
  203.             }
  204.             else{
  205.                 return false;
  206.             }
  207.         }
  208.         else{
  209.             return true;
  210.         }
  211.     }
  212.     else{
  213.         return false;
  214.     }
  215. }
  216.  
  217. void calendarApp(int year, string starting_day){
  218.     string month_name[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
  219.     int days_in_months[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  220.     string day_name[7] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
  221.    
  222.     //check if leap year
  223.     if(checkLeapYear(year)){
  224.         days_in_months[1] = 29;
  225.     }
  226.    
  227.     //print months in year
  228.     for(int i = 0; i < 12; i++){
  229.         cout << endl;
  230.         cout << "---------------" << month_name[i] << "---------------" << endl;
  231.         for(int j = 0; j < 7; j++){
  232.             cout << day_name[j] << "  ";
  233.         }
  234.         cout << endl;
  235.         printDates(days_in_months, i, day_name);
  236.     }
  237. }
  238.  
  239. int main()
  240. {
  241.     int year;
  242.     cout << "Year: ";
  243.     cin >> year;
  244.    
  245.     cout << "Starting day of the year: ";
  246.     cin >> starting_day;
  247.    
  248.     while(true){
  249.         calendarApp(year, starting_day);
  250.         calendarOptions();
  251.         if(option == 0){
  252.             break;
  253.         }
  254.     }
  255.        
  256.     return 0;
  257. }
  258.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement