Hi All,
Below is the C++ program to get the date if you pass the year and number of days as arguments.
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
typedef struct {
int mm;
int dd;
int yy;
} ST_USER_DATE;
ST_USER_DATE GetDate(int yy, int day);
int main(int argc, char *argv[])
{
int day;
int yy;
ST_USER_DATE stDate;
yy = atoi(argv[1]);
day = atoi(argv[2]);
stDate = GetDate(yy, day);
printf("Date is MM-DD-YYYY - %02d-%02d-%04d\n", stDate.mm, stDate.dd, stDate.yy);
fflush(stdout);
getch();
return 0;
}
ST_USER_DATE GetDate(int yy, int day)
{
int daysInMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int nMDay[12];
int dd;
int i, mm, sum;
ST_USER_DATE stDate;
if( (yy % 4 == 0 && yy % 100 != 0) || yy % 400 == 0) // leap year
daysInMonth[1] = 29;
else
daysInMonth[1] = 28;
sum = 0;
for(i=0; i<12; i++)
{
sum = sum + daysInMonth[i];
nMDay[i] = sum;
}
if( day <= nMDay[0]) { mm = 1; dd = day; }
else if( day <=nMDay[1]) { mm = 2; dd = day - nMDay[0]; }
else if( day <=nMDay[2]) { mm = 3; dd = day - nMDay[1]; }
else if( day <=nMDay[3]) { mm = 4; dd = day - nMDay[2]; }
else if( day <=nMDay[4]) { mm = 5; dd = day - nMDay[3]; }
else if( day <=nMDay[5]) { mm = 6; dd = day - nMDay[4]; }
else if( day <=nMDay[6]) { mm = 7; dd = day - nMDay[5]; }
else if( day <=nMDay[7]) { mm = 8; dd = day - nMDay[6]; }
else if( day <=nMDay[8]) { mm = 9; dd = day - nMDay[7]; }
else if( day <=nMDay[9]) { mm = 10; dd = day - nMDay[8]; }
else if( day <=nMDay[10]) { mm = 11; dd = day - nMDay[9]; }
else if( day <=nMDay[11]) { mm = 12; dd = day - nMDay[10]; }
stDate.mm = mm;
stDate.dd = dd;
stDate.yy = yy;
return (stDate);
}
Below is the C++ program to get the date if you pass the year and number of days as arguments.
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
typedef struct {
int mm;
int dd;
int yy;
} ST_USER_DATE;
ST_USER_DATE GetDate(int yy, int day);
int main(int argc, char *argv[])
{
int day;
int yy;
ST_USER_DATE stDate;
yy = atoi(argv[1]);
day = atoi(argv[2]);
stDate = GetDate(yy, day);
printf("Date is MM-DD-YYYY - %02d-%02d-%04d\n", stDate.mm, stDate.dd, stDate.yy);
fflush(stdout);
getch();
return 0;
}
ST_USER_DATE GetDate(int yy, int day)
{
int daysInMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int nMDay[12];
int dd;
int i, mm, sum;
ST_USER_DATE stDate;
if( (yy % 4 == 0 && yy % 100 != 0) || yy % 400 == 0) // leap year
daysInMonth[1] = 29;
else
daysInMonth[1] = 28;
sum = 0;
for(i=0; i<12; i++)
{
sum = sum + daysInMonth[i];
nMDay[i] = sum;
}
if( day <= nMDay[0]) { mm = 1; dd = day; }
else if( day <=nMDay[1]) { mm = 2; dd = day - nMDay[0]; }
else if( day <=nMDay[2]) { mm = 3; dd = day - nMDay[1]; }
else if( day <=nMDay[3]) { mm = 4; dd = day - nMDay[2]; }
else if( day <=nMDay[4]) { mm = 5; dd = day - nMDay[3]; }
else if( day <=nMDay[5]) { mm = 6; dd = day - nMDay[4]; }
else if( day <=nMDay[6]) { mm = 7; dd = day - nMDay[5]; }
else if( day <=nMDay[7]) { mm = 8; dd = day - nMDay[6]; }
else if( day <=nMDay[8]) { mm = 9; dd = day - nMDay[7]; }
else if( day <=nMDay[9]) { mm = 10; dd = day - nMDay[8]; }
else if( day <=nMDay[10]) { mm = 11; dd = day - nMDay[9]; }
else if( day <=nMDay[11]) { mm = 12; dd = day - nMDay[10]; }
stDate.mm = mm;
stDate.dd = dd;
stDate.yy = yy;
return (stDate);
}
No comments:
Post a Comment