本文整理汇总了C++中COleDateTimeSpan::GetTotalDays方法的典型用法代码示例。如果您正苦于以下问题:C++ COleDateTimeSpan::GetTotalDays方法的具体用法?C++ COleDateTimeSpan::GetTotalDays怎么用?C++ COleDateTimeSpan::GetTotalDays使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COleDateTimeSpan
的用法示例。
在下文中一共展示了COleDateTimeSpan::GetTotalDays方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ToRelativeTimeString
/**
* Generates a display string showing the relative time between the two given times as COleDateTimes
*/
CString CLoglistUtils::ToRelativeTimeString(COleDateTime time,COleDateTime RelativeTo)
{
COleDateTimeSpan ts = RelativeTo - time;
//years
if(fabs(ts.GetTotalDays()) >= 3 * 365)
return ExpandRelativeTime((int)ts.GetTotalDays()/365, IDS_YEAR_AGO, IDS_YEARS_AGO);
//Months
if(fabs(ts.GetTotalDays()) >= 60)
return ExpandRelativeTime((int)ts.GetTotalDays()/30, IDS_MONTH_AGO, IDS_MONTHS_AGO);
//Weeks
if(fabs(ts.GetTotalDays()) >= 14)
return ExpandRelativeTime((int)ts.GetTotalDays()/7, IDS_WEEK_AGO, IDS_WEEKS_AGO);
//Days
if(fabs(ts.GetTotalDays()) >= 2)
return ExpandRelativeTime((int)ts.GetTotalDays(), IDS_DAY_AGO, IDS_DAYS_AGO);
//hours
if(fabs(ts.GetTotalHours()) >= 2)
return ExpandRelativeTime((int)ts.GetTotalHours(), IDS_HOUR_AGO, IDS_HOURS_AGO);
//minutes
if(fabs(ts.GetTotalMinutes()) >= 2)
return ExpandRelativeTime((int)ts.GetTotalMinutes(), IDS_MINUTE_AGO, IDS_MINUTES_AGO);
//seconds
return ExpandRelativeTime((int)ts.GetTotalSeconds(), IDS_SECOND_AGO, IDS_SECONDS_AGO);
}
示例2: SetDateInterval
void CBCGPPlannerViewMonth::SetDateInterval (const COleDateTime& date1, const COleDateTime& date2)
{
ASSERT (date1 <= date2);
COleDateTimeSpan duration (date2 - date1);
m_nDuration = ((int)(duration.GetTotalDays () / 7.0)) * 7;
if (m_nDuration < duration.GetTotalDays ())
{
m_nDuration += 7;
}
if (m_nDuration < 14)
{
m_nDuration = 14;
}
else if (m_nDuration > 42)
{
m_nDuration = 42;
}
COleDateTime _date1 (date1);
if (IsCompressWeekend () &&
CBCGPPlannerManagerCtrl::GetFirstDayOfWeek () == 0)
{
_date1 += COleDateTimeSpan (1, 0, 0, 0);
}
m_DateStart = GetFirstWeekDay2 (_date1, CBCGPPlannerManagerCtrl::GetFirstDayOfWeek () + 1);
m_DateEnd = m_DateStart + COleDateTimeSpan (m_nDuration - 1, 23, 59, 59);
if (m_DateEnd < m_Date || m_Date < m_DateStart)
{
m_Date = m_DateStart;
}
SetDate (m_Date);
}
示例3: OnInitDialog
BOOL COptionsStats::OnInitDialog()
{
CPropertyPage::OnInitDialog();
CTime time(CGetSetOptions::GetTotalDate());
m_eAllDate = time.Format("%m/%d/%Y %I:%M %p");
m_eAllCopies.Format(_T("%d"), CGetSetOptions::GetTotalCopyCount());
m_eAllPastes.Format(_T("%d"), CGetSetOptions::GetTotalPasteCount());
CTime time2(CGetSetOptions::GetTripDate());
m_eTripDate = time2.Format("%m/%d/%Y %I:%M %p");
m_eTripCopies.Format(_T("%d"), CGetSetOptions::GetTripCopyCount());
m_eTripPastes.Format(_T("%d"), CGetSetOptions::GetTripPasteCount());
m_eClipsSent.Format(_T("%d"), theApp.m_lClipsSent);
m_eClipsRecieved.Format(_T("%d"), theApp.m_lClipsRecieved);
m_eLastStarted = theApp.m_oldtStartUp.Format(_T("%m/%d/%y %I:%M:%S"));
if(theApp.m_oldtStartUp.GetHour() > 12)
m_eLastStarted += " PM";
else
m_eLastStarted += " AM";
COleDateTimeSpan span = COleDateTime::GetCurrentTime() - theApp.m_oldtStartUp;
CString csSpan;
csSpan.Format(_T(" - %d.%d.%d (D.H.M)"), (long)span.GetTotalDays(), span.GetHours(), span.GetMinutes());
m_eLastStarted += csSpan;
try
{
m_eSavedCopies.Format(_T("%d"), theApp.m_db.execScalar(_T("SELECT COUNT(lID) FROM Main")));
m_eSavedCopyData.Format(_T("%d"), theApp.m_db.execScalar(_T("SELECT COUNT(lID) FROM Data")));
}
CATCH_SQLITE_EXCEPTION
__int64 size = FileSize(GetDBName());
const int MAX_FILE_SIZE_BUFFER = 255;
TCHAR szFileSize[MAX_FILE_SIZE_BUFFER];
StrFormatByteSize(size, szFileSize, MAX_FILE_SIZE_BUFFER);
m_eDatabaseSize = szFileSize;
UpdateData(FALSE);
theApp.m_Language.UpdateOptionStats(this);
return TRUE;
}
示例4: OnReadGroup
int CNetworkTree::OnReadGroup(_RecordsetPtr xRecordset, CString& xUserGrp, CString& xGroupId)
{
_variant_t TheValue = xRecordset->GetCollect( "xentercode" );
ASSERT( VT_NULL != TheValue.vt ); xGroupId = (LPCTSTR)(_bstr_t)TheValue;
TheValue = xRecordset->GetCollect( "xentername" );
if ( VT_NULL == TheValue.vt ) xUserGrp = _T("<NULL>");
else xUserGrp = (LPCTSTR)(_bstr_t)TheValue;
TheValue = xRecordset->GetCollect( "xexpiredate" );
if ( VT_NULL != TheValue.vt )
{
COleDateTime tt = TheValue; tt.SetTime( 0, 0, 0 );
COleDateTimeSpan tSpan = COleDateTime::GetCurrentTime() - tt;
if ( tSpan.GetTotalDays() > 0 ) return EBase_NoPay;
}
return 0;
}
示例5: CalculateTickIncrement
void CChartAxis::CalculateTickIncrement()
{
if (!m_bAutoTicks)
return;
if (m_MaxValue == m_MinValue)
{
m_iDTTickIntervalMult = 0;
m_TickIncrement = 0;
return;
}
int PixelSpace;
if (m_bIsHorizontal)
{
if (m_AxisType == atDateTime)
PixelSpace = 60;
else
PixelSpace = 30;
}
else
PixelSpace = 20;
int MaxTickNumber = (int)fabs((m_EndPos-m_StartPos)/PixelSpace * 1.0);
//Calculate the appropriate TickSpace (1 tick every 30 pixel +/-)
switch (m_AxisType)
{
case atLogarithmic:
m_TickIncrement = 10;
break;
case atStandard:
{
//Temporary tick increment
double TickIncrement = (m_MaxValue-m_MinValue)/MaxTickNumber;
// Calculate appropriate tickSpace (not rounded on 'strange values' but
// on something like 1, 2 or 5*10^X where X is optimalized for showing the most
// significant digits)
int Zeros = (int)floor(log10(TickIncrement));
double MinTickIncrement = pow(10.0,Zeros);
int Digits = 0;
if (Zeros<0)
{
//We must set decimal places. In the other cases, Digits will be 0.
Digits = (int)fabs(Zeros*1.0);
}
if (MinTickIncrement>=TickIncrement)
{
m_TickIncrement = MinTickIncrement;
SetDecimals(Digits);
}
else if (MinTickIncrement*2>=TickIncrement)
{
m_TickIncrement = MinTickIncrement*2;
SetDecimals(Digits);
}
else if (MinTickIncrement*5>=TickIncrement)
{
m_TickIncrement = MinTickIncrement*5;
SetDecimals(Digits);
}
else if (MinTickIncrement*10>=TickIncrement)
{
m_TickIncrement = MinTickIncrement*10;
if (Digits)
SetDecimals(Digits-1);
else
SetDecimals(Digits);
}
}
break;
case atDateTime:
{
COleDateTime StartDate(m_MinValue);
COleDateTime EndDate(m_MaxValue);
COleDateTimeSpan minTickInterval = (EndDate - StartDate)/MaxTickNumber;
double Seconds = minTickInterval.GetTotalSeconds();
double Minutes = minTickInterval.GetTotalMinutes();
double Hours = minTickInterval.GetTotalHours();
double Days = minTickInterval.GetTotalDays();
if (Seconds < 60)
{
m_BaseInterval = tiSecond;
if (Seconds > 30)
{
m_BaseInterval = tiMinute;
m_iDTTickIntervalMult = 1;
}
else if (Seconds > 10)
m_iDTTickIntervalMult = 30;
else if (Seconds > 5)
m_iDTTickIntervalMult = 10;
else if (Seconds > 2)
m_iDTTickIntervalMult = 5;
//.........这里部分代码省略.........
示例6: GetTickBeforeVal
double CChartDateTimeAxis::GetTickBeforeVal(double dValue) const
{
double precision = 0.0000000001;
if (dValue < 0)
precision = -0.0000000001;
COleDateTime tickBefore;
COleDateTime valueTime = COleDateTime(DATE(dValue+precision));
COleDateTimeSpan dtSpan = valueTime - m_ReferenceTick;
switch (m_BaseInterval)
{
case tiSecond:
{
int totalSecs = (int)dtSpan.GetTotalSeconds();
totalSecs = (totalSecs/m_iDTTickIntervalMult) * m_iDTTickIntervalMult;
int Days = totalSecs/86400; // 86400 seconds in one day
int Hours = (totalSecs%86400)/3600; // 3600 seconds in one hour
int Minutes = ((totalSecs%86400)%3600)/60; // 60 seconds in one minute
int Seconds = ((totalSecs%86400)%3600)%60;
dtSpan.SetDateTimeSpan(Days, Hours, Minutes, Seconds);
tickBefore = m_ReferenceTick + dtSpan;
}
break;
case tiMinute:
{
int totalMinutes = (int)dtSpan.GetTotalMinutes();
totalMinutes = (totalMinutes/m_iDTTickIntervalMult) * m_iDTTickIntervalMult;
int Days = totalMinutes/1440; // 1440 minutes in one day
int Hours = (totalMinutes%1440)/60; // 60 minutes in one hour
int Minutes = (totalMinutes%1440)%60;
dtSpan.SetDateTimeSpan(Days, Hours, Minutes, 0);
tickBefore = m_ReferenceTick + dtSpan;
}
break;
case tiHour:
{
int totalHours = (int)dtSpan.GetTotalHours();
totalHours = (totalHours/m_iDTTickIntervalMult) * m_iDTTickIntervalMult;
int Days = totalHours/24; // 24 hours in one day
int Hours = totalHours%24;
dtSpan.SetDateTimeSpan(Days, Hours, 0, 0);
tickBefore = m_ReferenceTick + dtSpan;
}
break;
case tiDay:
{
int totalDays = (int)dtSpan.GetTotalDays();
totalDays = (totalDays/m_iDTTickIntervalMult) * m_iDTTickIntervalMult;
dtSpan.SetDateTimeSpan(totalDays, 0, 0, 0);
tickBefore = m_ReferenceTick + dtSpan;
}
break;
case tiMonth:
{
int yearDiff = valueTime.GetYear() - m_ReferenceTick.GetYear();
int monthDiff = valueTime.GetMonth() - m_ReferenceTick.GetMonth();
int totalMonths = ((yearDiff*12+monthDiff)/m_iDTTickIntervalMult) * m_iDTTickIntervalMult;
tickBefore = AddMonthToDate(m_ReferenceTick,totalMonths);
}
break;
case tiYear:
{
int yearDiff = valueTime.GetYear() - m_ReferenceTick.GetYear();
int year = ((yearDiff)/m_iDTTickIntervalMult) * m_iDTTickIntervalMult;
tickBefore = AddMonthToDate(m_ReferenceTick,year*12);
}
break;
}
return (DATE)tickBefore;
}
示例7: RefreshTickIncrement
void CChartDateTimeAxis::RefreshTickIncrement()
{
if (!m_bAutoTicks)
return;
if (m_MaxValue == m_MinValue)
{
m_iDTTickIntervalMult = 1;
return;
}
int PixelSpace;
if (m_bIsHorizontal)
PixelSpace = 60;
else
PixelSpace = 20;
int MaxTickNumber = (int)fabs((m_EndPos-m_StartPos)/PixelSpace * 1.0);
if (MaxTickNumber == 0)
MaxTickNumber = 1;
COleDateTime StartDate(m_MinValue);
COleDateTime EndDate(m_MaxValue);
COleDateTimeSpan minTickInterval = (EndDate - StartDate)/MaxTickNumber;
double Seconds = minTickInterval.GetTotalSeconds();
double Minutes = minTickInterval.GetTotalMinutes();
double Hours = minTickInterval.GetTotalHours();
double Days = minTickInterval.GetTotalDays();
if (Seconds < 60)
{
m_BaseInterval = tiSecond;
if (Seconds > 30)
{
m_BaseInterval = tiMinute;
m_iDTTickIntervalMult = 1;
}
else if (Seconds > 10)
m_iDTTickIntervalMult = 30;
else if (Seconds > 5)
m_iDTTickIntervalMult = 10;
else if (Seconds > 2)
m_iDTTickIntervalMult = 5;
else
m_iDTTickIntervalMult = 1;
}
else if (Minutes < 60)
{
m_BaseInterval = tiMinute;
if (Minutes > 30)
{
m_BaseInterval = tiHour;
m_iDTTickIntervalMult = 1;
}
else if (Minutes > 10)
m_iDTTickIntervalMult = 30;
else if (Minutes > 5)
m_iDTTickIntervalMult = 10;
else if (Minutes > 2)
m_iDTTickIntervalMult = 5;
else
m_iDTTickIntervalMult = 2;
}
else if (Hours < 24)
{
m_BaseInterval = tiHour;
if (Hours > 12)
{
m_BaseInterval = tiDay;
m_iDTTickIntervalMult = 1;
}
else if (Hours > 6)
m_iDTTickIntervalMult = 12;
else if (Hours > 2)
m_iDTTickIntervalMult = 6;
else
m_iDTTickIntervalMult = 2;
}
else if (Days < 31)
{
m_BaseInterval = tiDay;
if (Days > 7)
{
m_BaseInterval = tiMonth;
m_iDTTickIntervalMult = 1;
}
else if (Days > 2)
{
m_BaseInterval = tiDay;
m_iDTTickIntervalMult = 7;
}
else
m_iDTTickIntervalMult = 2;
}
else if (Days < 365)
{
m_BaseInterval = tiMonth;
if (Days > 186) // Approx 6 months
{
m_BaseInterval = tiYear;
//.........这里部分代码省略.........