#include <wx/fs_mem.h>
#include <wx/mstream.h>
#include <wx/filesys.h>
-#include <wx/datetime.h>
-//#include <b64/decode.h>
#include <string>
#include "getcontactinfo.h"
ArrayvCardOutData ContactData = vCardObj->GetByPartial(wxT("PHOTO"));
if (ContactData.PropCount > 0){
-
- // Split the data.
-
-
-
- /*std::map<int,int> SplitPts;
- std::map<int,int> SplitLen;
- std::map<wxString,wxString> SplitData;
- int intSize = 0;
-
- SplitPropertyData(&ContactData.PropData[0],
- &SplitPts,
- &SplitLen,
- 0,
- &SplitData);
-
- for (std::map<wxString, wxString>::iterator striter = SplitData.begin();
- striter != SplitData.end(); striter++){
-
- raise(SIGABRT);
-
- }*/
// Look for the X-ABCROP-RECTANGLE.
PhotoRectData.GetNextToken();
- //PhotoRectPoints.SetX(wxAtoi(PhotoRectData.GetNextToken()));
- //PhotoRectPoints.SetY(wxAtoi(PhotoRectData.GetNextToken()) - 100);
-
int PointXBase = wxAtoi(PhotoRectData.GetNextToken());
int PointYBase = wxAtoi(PhotoRectData.GetNextToken());
int PointWBase = wxAtoi(PhotoRectData.GetNextToken());
DataDisplay = FALSE;
DataLines.clear();
-
+ wxDateTime DateFormat;
+ long MonthValue = 0;
+ long DayValue = 0;
+ long YearValue = 0;
+
if (ContactData.PropCount > 0){
wxString BDayLine;
BDayLine = ContactData.PropValues[i];
BDayLine.Trim();
- CaptureString(&BDayLine, FALSE);
- ConvertToHTML(&BDayLine);
+
+ if (BDayLine.Mid(0,4) == wxT("1604")){
+
+ BDayLine = BDayLine.Mid(4,4);
+
+ BDayLine.Mid(0,2).ToLong(&MonthValue);
+ BDayLine.Mid(2,2).ToLong(&DayValue);
+
+ MonthValue--;
+
+ DateFormat.Set((wxDateTime::wxDateTime_t)(int)DayValue, (wxDateTime::Month)(MonthValue), 0, 0, 0, 0, 0);
+
+ } else if (BDayLine.Mid(0,2) == wxT("--")){
+
+ BDayLine = BDayLine.Mid(2,4);
+
+ BDayLine.Mid(0,2).ToLong(&MonthValue);
+ BDayLine.Mid(2,2).ToLong(&DayValue);
+
+ MonthValue--;
+
+ DateFormat.Set((wxDateTime::wxDateTime_t)(int)DayValue, (wxDateTime::Month)(MonthValue), 0, 0, 0, 0, 0);
+
+ } else {
+
+
+ BDayLine.Mid(0,4).ToLong(&YearValue);
+ BDayLine.Mid(4,2).ToLong(&MonthValue);
+ BDayLine.Mid(6,2).ToLong(&DayValue);
+
+ MonthValue--;
+
+ DateFormat.Set((wxDateTime::wxDateTime_t)(int)DayValue, (wxDateTime::Month)(MonthValue), YearValue, 0, 0, 0, 0);
+
+ }
+
+ wxString BDayOutput;
+
+ BDayOutput.append(wxString::Format(wxT("%02i"), (int)DayValue));
+ BDayOutput.append(wxT("/"));
+ BDayOutput.append(wxString::Format(wxT("%02i"), (int)(MonthValue + 1)));
+
+ if (DateFormat.GetYear() != 0){
+
+ BDayOutput.append(wxT("/"));
+ BDayOutput.append(wxString::Format(wxT("%04i"), (int)YearValue));
+
+ }
+
+ CaptureString(&BDayOutput, FALSE);
+ ConvertToHTML(&BDayOutput);
- DataLines.append(BDayLine);
+ DataLines.append(BDayOutput);
break;
// Grab the first anniversary only.
AnniLine = ContactData.PropValues[i];
-
AnniLine.Trim();
- CaptureString(&AnniLine, FALSE);
- ConvertToHTML(&AnniLine);
+
+ if (AnniLine.Mid(0,4) == wxT("1604")){
+
+ AnniLine = AnniLine.Mid(4,4);
+
+ AnniLine.Mid(0,2).ToLong(&MonthValue);
+ AnniLine.Mid(2,2).ToLong(&DayValue);
+
+ MonthValue--;
+
+ DateFormat.Set((wxDateTime::wxDateTime_t)(int)DayValue, (wxDateTime::Month)(MonthValue), 0, 0, 0, 0, 0);
+
+ } else if (AnniLine.Mid(0,2) == wxT("--")){
+
+ AnniLine = AnniLine.Mid(2,4);
+
+ AnniLine.Mid(0,2).ToLong(&MonthValue);
+ AnniLine.Mid(2,2).ToLong(&DayValue);
+
+ MonthValue--;
+
+ DateFormat.Set((wxDateTime::wxDateTime_t)(int)DayValue, (wxDateTime::Month)(MonthValue), 0, 0, 0, 0, 0);
+
+ } else {
+
+
+ AnniLine.Mid(0,4).ToLong(&YearValue);
+ AnniLine.Mid(4,2).ToLong(&MonthValue);
+ AnniLine.Mid(6,2).ToLong(&DayValue);
+
+ MonthValue--;
+
+ DateFormat.Set((wxDateTime::wxDateTime_t)(int)DayValue, (wxDateTime::Month)(MonthValue), YearValue, 0, 0, 0, 0);
+
+ }
+
+ wxString AnniDayOutput;
+
+ AnniDayOutput.append(wxString::Format(wxT("%02i"), (int)DayValue));
+ AnniDayOutput.append(wxT("/"));
+ AnniDayOutput.append(wxString::Format(wxT("%02i"), (int)(MonthValue + 1)));
+
+ if (DateFormat.GetYear() != 0){
+
+ AnniDayOutput.append(wxT("/"));
+ AnniDayOutput.append(wxString::Format(wxT("%04i"), (int)YearValue));
+
+ }
+
+ CaptureString(&AnniDayOutput, FALSE);
+ ConvertToHTML(&AnniDayOutput);
- DataLines.append(AnniLine);
+ DataLines.append(AnniDayOutput);
break;
SLiter = SplitLength.find(1);
- //txtSurname->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(0, SLiter->second), TRUE));
AddressPOBox = AddressLine.Mid(0, SLiter->second);
intPrevValue = intiter->second;
SLiter = SplitLength.find(2);
AddressExtended = AddressLine.Mid(intPrevValue, SLiter->second);
- //txtForename->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
intPrevValue = intiter->second;
} else if (intiter->first == 3){
SLiter = SplitLength.find(3);
AddressStreet = AddressLine.Mid(intPrevValue, SLiter->second);
- //txtOtherNames->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
intPrevValue = intiter->second;
} else if (intiter->first == 4){
SLiter = SplitLength.find(4);
AddressLocality = AddressLine.Mid(intPrevValue, SLiter->second);
- //txtTitle->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
intPrevValue = intiter->second;
-
- //txtSuffix->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, wxSTRING_MAXLEN), TRUE));
} else if (intiter->first == 5){
SLiter = SplitLength.find(5);
AddressRegion = AddressLine.Mid(intPrevValue, SLiter->second);
- //txtTitle->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
intPrevValue = intiter->second;
-
- //txtSuffix->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, wxSTRING_MAXLEN), TRUE));
} else if (intiter->first == 6){
SLiter = SplitLength.find(6);
AddressPostalCode = AddressLine.Mid(intPrevValue, SLiter->second);
- //txtTitle->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, SLiter->second), TRUE));
intPrevValue = intiter->second;
// Deal with country.
AddressCountry = AddressLine.Mid(intPrevValue);
- //txtSuffix->SetValue(ContactData.Convert(wxSPropertySeg2.Mid(intPrevValue, wxSTRING_MAXLEN), TRUE));
}