devi fare una cosa del genere:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void std_date_format(char *s1, char *s2);
int main()
{
char str1[]="Wed, 26 Feb 2003 12:22:35 GMT\0";
char str2[]="26/02/03 16:22"; // dd/mo/yy/ hh:mm
//trasforma entrambe le stringhe nel seg. formato (dd mo yy hh mm)
std_date_format(str1, str2);
system("PAUSE");
return 0;
}
void std_date_format(char *s1, char *s2)
{
char dd1[3], mo1[3], yy1[3], hh1[3], mm1[3];
char dd2[3], mo2[3], yy2[3], hh2[3], mm2[3];
int idd1, imo1, iyy1, ihh1, imm1;
int idd2, imo2, iyy2, ihh2, imm2;
int i=0;
//standardizzo STR1
while(1) // catturo dd1
{
if(s1[i] <= '9' && s1[i] >= '0')
{
dd1[0]=s1[i];
dd1[1]=s1[++i];
dd1[2]='\0';
break;
}
i++;
}
i++;
while(1) // catturo mo1 (Gen==00, Feb==01, Mar==02, Apr==03, ecc...)
{
if(s1[i] == 'G' && s1[i+1] == 'e' && s1[i+2] == 'n')
{
mo1[0]='0';
mo1[1]='1';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'F' && s1[i+1] == 'e' && s1[i+2] == 'b')
{
mo1[0]='0';
mo1[1]='2';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'M' && s1[i+1] == 'a' && s1[i+2] == 'r')
{
mo1[0]='0';
mo1[1]='3';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'A' && s1[i+1] == 'p' && s1[i+2] == 'r')
{
mo1[0]='0';
mo1[1]='4';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'M' && s1[i+1] == 'a' && s1[i+2] == 'y')
{
mo1[0]='0';
mo1[1]='5';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'J' && s1[i+1] == 'u' && s1[i+2] == 'n')
{
mo1[0]='0';
mo1[1]='6';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'J' && s1[i+1] == 'u' && s1[i+2] == 'l')
{
mo1[0]='0';
mo1[1]='7';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'A' && s1[i+1] == 'u' && s1[i+2] == 'g')
{
mo1[0]='0';
mo1[1]='8';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'S' && s1[i+1] == 'e' && s1[i+2] == 'p')
{
mo1[0]='0';
mo1[1]='9';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'O' && s1[i+1] == 'c' && s1[i+2] == 't')
{
mo1[0]='1';
mo1[1]='0';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'N' && s1[i+1] == 'o' && s1[i+2] == 'v')
{
mo1[0]='1';
mo1[1]='1';
mo1[2]='\0';
i=i+2;
break;
}
else if(s1[i] == 'D' && s1[i+1] == 'e' && s1[i+2] == 'c')
{
mo1[0]='1';
mo1[1]='2';
mo1[2]='\0';
i=i+2;
break;
}
i++;
}
i++;
while(1) // catturo yy1
{
if(s1[i] <= '9' && s1[i] >= '0')
{
yy1[0]=s1[i+2];
yy1[1]=s1[i+3];
yy1[2]='\0';
i=i+3;
break;
}
i++;
}
i++;
while(1) // catturo hh1
{
if(s1[i] <= '9' && s1[i] >= '0')
{
hh1[0]=s1[i];
hh1[1]=s1[++i];
hh1[2]='\0';
break;
}
i++;
}
i++;
while(1) // catturo mm1
{
if(s1[i] <= '9' && s1[i] >= '0')
{
mm1[0]=s1[i];
mm1[1]=s1[++i];
mm1[2]='\0';
break;
}
i++;
}
//standardizzo STR2
i=0;
while(1) // catturo dd2
{
if(s2[i] <= '9' && s2[i] >= '0')
{
dd2[0]=s2[i];
dd2[1]=s2[++i];
dd2[2]='\0';
break;
}
i++;
}
i++;
while(1) // catturo mo2
{
if(s2[i] <= '9' && s2[i] >= '0')
{
mo2[0]=s2[i];
mo2[1]=s2[++i];
mo2[2]='\0';
break;
}
i++;
}
i++;
while(1) // catturo yy2
{
if(s2[i] <= '9' && s2[i] >= '0')
{
yy2[0]=s2[i];
yy2[1]=s2[++i];
yy2[2]='\0';
break;
}
i++;
}
i++;
while(1) // catturo hh2
{
if(s2[i] <= '9' && s2[i] >= '0')
{
hh2[0]=s2[i];
hh2[1]=s2[++i];
hh2[2]='\0';
break;
}
i++;
}
i++;
while(1) // catturo mm2
{
if(s2[i] <= '9' && s2[i] >= '0')
{
mm2[0]=s2[i];
mm2[1]=s2[++i];
mm2[2]='\0';
break;
}
i++;
}
printf("STR1 : %s %s %s %s %s\n", dd1, mo1, yy1, hh1, mm1);
printf("STR2 : %s %s %s %s %s\n", dd2, mo2, yy2, hh2, mm2);
// CONFRONTO LE 2 DATE (stringhe)
idd1=atoi(dd1);
imo1=atoi(mo1);
iyy1=atoi(yy1);
ihh1=atoi(hh1);
imm1=atoi(mm1);
idd2=atoi(dd2);
imo2=atoi(mo2);
iyy2=atoi(yy2);
ihh2=atoi(hh2);
imm2=atoi(mm2);
if(iyy1 > iyy2)
{
printf("\nSTR1 maggiore di STR2\n");
}
else if(iyy1 < iyy2)
{
printf("\nSTR1 minore di STR2\n");
}
else
{
if(imo1 > imo2)
{
printf("\nSTR1 maggiore di STR2\n");
}
else if(imo1 < imo2)
{
printf("\nSTR1 minore di STR2\n");
}
else
{
if(idd1 > idd2)
{
printf("\nSTR1 maggiore di STR2\n");
}
else if(idd1 < idd2)
{
printf("\nSTR1 minore di STR2\n");
}
else
{
if(ihh1 > ihh2)
{
printf("\nSTR1 maggiore di STR2\n");
}
else if(ihh1 < ihh2)
{
printf("\nSTR1 minore di STR2\n");
}
else
{
if(imm1 > imm2)
{
printf("\nSTR1 maggiore di STR2\n");
}
else if(imm1 < imm2)
{
printf("\nSTR1 minore di STR2\n");
}
else
{
printf("\nSTR1 uguale a STR2\n");
}
}
}
}
}
}