//Mia Agramon CS1A Chapter 10, P.590, #13
//
/*******************************************************************************
* Date Formatter
* _____________________________________________________________________________
* This program converts dates from mm/dd/yyyy to "Month" "Date", "Year."
* Example: 01/12/2003 --> January 12, 2003
*
* INPUT
* date in the format mm/dd/yyyy
* OUTPUT
* date in the format month date, year
******************************************************************************/
#include <iostream>
#include <cstring>
using namespace std;
void convertDate(char* str);
int main()
{
//Initialize Variables
const int SIZE = 11;
char date[SIZE];
//Get Input
cout << "Enter a date (mm/dd/yyyy): ";
cin.getline(date, SIZE);
cout << date << endl;
//Display Output
convertDate(date);
cout << "Converted date: " << date << endl;
return 0;
}
//Function
void convertDate(char* str)
{
char monthStr[3], dayStr[3], yearStr[5];
int month;
int day;
int year;
monthStr[0] = str[0];
monthStr[1] = str[1];
monthStr[2] = '\0';
month = atoi(monthStr);
dayStr[0] = str[3];
dayStr[1] = str[4];
dayStr[2] = '\0';
day = atoi(dayStr);
yearStr[0] = str[6];
yearStr[1] = str[7];
yearStr[2] = str[8];
yearStr[3] = str[9];
yearStr[4] = '\0';
year = atoi(yearStr);
const char* monthNames[] = {"January", "February", "March", "April", "May",
"June", "July", "August", "September", "October",
"November", "December"};
char monthName[20];
strcpy(monthName, monthNames[month - 1]);
sprintf(str, "%s %02d, %04d", monthName, day, year);
}
Ly9NaWEgQWdyYW1vbiAgICAgICAgICAgICAgICAgICAgICBDUzFBICAgICAgICAgICAgICAgICAgIENoYXB0ZXIgMTAsIFAuNTkwLCAjMTMKLy8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogRGF0ZSBGb3JtYXR0ZXIKICogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICogVGhpcyBwcm9ncmFtIGNvbnZlcnRzIGRhdGVzIGZyb20gbW0vZGQveXl5eSB0byAiTW9udGgiICJEYXRlIiwgIlllYXIuIgogKiBFeGFtcGxlOiAwMS8xMi8yMDAzIC0tPiBKYW51YXJ5IDEyLCAyMDAzCiAqIAogKiBJTlBVVAogKiAgICBkYXRlIGluIHRoZSBmb3JtYXQgbW0vZGQveXl5eQogKiBPVVRQVVQKICogICAgZGF0ZSBpbiB0aGUgZm9ybWF0IG1vbnRoIGRhdGUsIHllYXIKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgY29udmVydERhdGUoY2hhciogc3RyKTsKCmludCBtYWluKCkgCnsKCS8vSW5pdGlhbGl6ZSBWYXJpYWJsZXMKCWNvbnN0IGludCBTSVpFID0gMTE7CgljaGFyIGRhdGVbU0laRV07CgkKCS8vR2V0IElucHV0Cgljb3V0IDw8ICJFbnRlciBhIGRhdGUgKG1tL2RkL3l5eXkpOiAiOwoJY2luLmdldGxpbmUoZGF0ZSwgU0laRSk7Cgljb3V0IDw8IGRhdGUgPDwgZW5kbDsKCQoJLy9EaXNwbGF5IE91dHB1dAoJY29udmVydERhdGUoZGF0ZSk7Cgljb3V0IDw8ICJDb252ZXJ0ZWQgZGF0ZTogIiA8PCBkYXRlIDw8IGVuZGw7CglyZXR1cm4gMDsKfQoKLy9GdW5jdGlvbgp2b2lkIGNvbnZlcnREYXRlKGNoYXIqIHN0cikKewoJY2hhciBtb250aFN0clszXSwgZGF5U3RyWzNdLCB5ZWFyU3RyWzVdOwoJaW50IG1vbnRoOwoJaW50IGRheTsKCWludCB5ZWFyOwoJCgltb250aFN0clswXSA9IHN0clswXTsKCW1vbnRoU3RyWzFdID0gc3RyWzFdOwoJbW9udGhTdHJbMl0gPSAnXDAnOwoJbW9udGggPSBhdG9pKG1vbnRoU3RyKTsKCQoJZGF5U3RyWzBdID0gc3RyWzNdOwoJZGF5U3RyWzFdID0gc3RyWzRdOwoJZGF5U3RyWzJdID0gJ1wwJzsKCWRheSA9IGF0b2koZGF5U3RyKTsKCQoJeWVhclN0clswXSA9IHN0cls2XTsKCXllYXJTdHJbMV0gPSBzdHJbN107Cgl5ZWFyU3RyWzJdID0gc3RyWzhdOwoJeWVhclN0clszXSA9IHN0cls5XTsKCXllYXJTdHJbNF0gPSAnXDAnOwoJeWVhciA9IGF0b2koeWVhclN0cik7CgkKCWNvbnN0IGNoYXIqIG1vbnRoTmFtZXNbXSA9IHsiSmFudWFyeSIsICJGZWJydWFyeSIsICJNYXJjaCIsICJBcHJpbCIsICJNYXkiLAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgIkp1bmUiLCAiSnVseSIsICJBdWd1c3QiLCAiU2VwdGVtYmVyIiwgIk9jdG9iZXIiLAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIn07CgkgICAgICAgICAgICAgICAgICAgICAgICAgICAKCWNoYXIgbW9udGhOYW1lWzIwXTsKCXN0cmNweShtb250aE5hbWUsIG1vbnRoTmFtZXNbbW9udGggLSAxXSk7CgkKCXNwcmludGYoc3RyLCAiJXMgJTAyZCwgJTA0ZCIsIG1vbnRoTmFtZSwgZGF5LCB5ZWFyKTsKfQ==