本文整理汇总了C++中COleDateTimeSpan::GetTotalMinutes方法的典型用法代码示例。如果您正苦于以下问题:C++ COleDateTimeSpan::GetTotalMinutes方法的具体用法?C++ COleDateTimeSpan::GetTotalMinutes怎么用?C++ COleDateTimeSpan::GetTotalMinutes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COleDateTimeSpan
的用法示例。
在下文中一共展示了COleDateTimeSpan::GetTotalMinutes方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: CheckTakeUp
BOOL CNDCheckInDlg::CheckTakeUp(CString strTermId)
{
//查询该终端是否被占用
BOOL bTakeUp = FALSE;
CLastUserInfo LastUserInfo;
if (CIBADAL::GetInstance()->GetLastUserInfo(LastUserInfo, 0, strTermId))
{
if (LastUserInfo.GetSuspend())//挂机
{
bTakeUp = TRUE;
}
else//非挂机
{
COleDateTime updateTime;
updateTime.ParseDateTime(LastUserInfo.GetUpdateTime());
COleDateTimeSpan interval = COleDateTime::GetCurrentTime() - updateTime;
if (interval.GetTotalMinutes() < 10)//被占用,并且用户还有效
{
bTakeUp = TRUE;
}
}
}
return bTakeUp;
}
示例3: IsNeedToQuery
BOOL CActiveMember::IsNeedToQuery()
{
if (GetStatus() == EStatus_LocalOnline) //本地在线
{
return IsOffLinePossibility();
}
else if (GetStatus() == EStatus_CenterOnLine) //中心在线
{
return COleDateTime::GetCurrentTime() >= UpdateDataTime;
}
else if (GetStatus() == EStatus_AutoReturn) //待退款
{
if (UpdateDataTime.GetStatus() != COleDateTime::valid)
{
return TRUE;
}
COleDateTimeSpan dtSpan = COleDateTime::GetCurrentTime() - UpdateDataTime;
if (dtSpan.GetTotalMinutes() >= GetRefundmentTime())
{
return TRUE;
}
}
//{ 2011/11/01-8210-gxx:
else if (GetStatus() == EStatus_RoomAutoReturn)
{
if (UpdateDataTime.GetStatus() != COleDateTime::valid)
{
return TRUE;
}
COleDateTimeSpan dtSpan = COleDateTime::GetCurrentTime() - UpdateDataTime;
if (dtSpan.GetTotalMinutes() >= 2.0) // 超过2分钟,主账号就可以自动退款了
{
return TRUE;
}
}
//}
return FALSE;
}
示例4: FiletimeAsTimeSpan
CString FiletimeAsTimeSpan(const PROPVARIANT& propVar)
{
FILETIME ftNull;
ftNull.dwLowDateTime = 0;
ftNull.dwHighDateTime = 0;
COleDateTime coledtNull(ftNull);
COleDateTime coledtEditTime(propVar.filetime);
COleDateTimeSpan coledtsTotalEditTime = coledtEditTime - coledtNull;
CString sPropValue;
sPropValue.Format(_T("%.0f"), coledtsTotalEditTime.GetTotalMinutes());
return sPropValue;
}
示例5: OnBnClickedOk
void CDefineBundleTimeDlg::OnBnClickedOk()
{
CString strRet;
COleDateTime startTime;
startTime.ParseDateTime(m_btnStartTime.ToString());
COleDateTime endTime;
endTime.ParseDateTime(m_btnEndTime.ToString());
COleDateTimeSpan sp = endTime - startTime;
UINT nAllMinites = (LONG)sp.GetTotalMinutes();
if (nAllMinites <= 0)
{
strRet = _T("包时时间有误,请重新选择!");
SetToolTipPos(IDOK);
ShowToolTip(strRet);
return;
}
CString strMoney;
m_edtBundTimeMoney.GetWindowText(strMoney);
if (strMoney.IsEmpty())
{
GetDlgItem(IDC_EDIT_BUNDTIMEMONEY)->SetFocus();
return;
}
CWaitCursor Wait;
double dBundTimeMoney = _tstof(strMoney);
UINT nBundTimeMoney = (dBundTimeMoney + 0.005) * 100; //作舍入转换
INT nIdx = m_cboArea.GetCurSel();
//2011-4-18-gxx: 保存开户时自定义包时的参数设置
m_BundleTimeInfo.TimeId = 9999;
m_BundleTimeInfo.BeginTime = startTime.Format(_T("%Y%m%d%H%M%S"));
m_BundleTimeInfo.TimePass = nAllMinites;
m_BundleTimeInfo.Amount = nBundTimeMoney;
m_BundleTimeInfo.PcClass = m_cboArea.GetItemData(nIdx);
m_BundleTimeInfo.AccountType = m_cboAccountType.GetCurSel();
m_BundleTimeInfo.bIsSelected = TRUE;
OnOK();
}
示例6: 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;
//.........这里部分代码省略.........
示例7: StartMonitoring
BOOL CXTPCalendarRemindersManager::StartMonitoring(CXTPCalendarResources* pResources, COleDateTimeSpan spPeriod2Cache)
{
if (!GetSafeHwnd())
{
if (!_CreateWnd())
{
ASSERT(FALSE);
return FALSE;
}
}
//***********************************
if (IsMonitoringRunning())
{
StopMonitoring();
}
//***********************************
RemoveAll();
XTP_SAFE_CALL1(m_pResourcesNf, RemoveAll());
m_Sink.UnadviseAll();
//-----------------------------------
ASSERT(pResources);
ASSERT(CXTPCalendarUtils::GetTotalSeconds(spPeriod2Cache) > 0);
if (!pResources || !m_pResourcesNf)
{
return FALSE;
}
DBG_REMINDERS_TRACE(_T("%s - CXTPCalendarRemindersManager::StartMonitoring(). period = %d min \n"),
(LPCTSTR)CXTPCalendarUtils::GetCurrentTime().Format(),
(int)spPeriod2Cache.GetTotalMinutes());
m_pResourcesNf->Append(pResources);
m_spPeriod2Cache = spPeriod2Cache;
//------------------------------------
// Advise to Data Provider notifications
CXTPNotifyConnection* pConnRC = m_pResourcesNf->GetConnection();
ASSERT(pConnRC);
if (pConnRC)
{
m_Sink.Advise(pConnRC, XTP_NC_CALENDAREVENTWASADDED, &CXTPCalendarRemindersManager::OnEventChanged);
m_Sink.Advise(pConnRC, XTP_NC_CALENDAREVENTWASDELETED, &CXTPCalendarRemindersManager::OnEventChanged);
m_Sink.Advise(pConnRC, XTP_NC_CALENDAREVENTWASCHANGED, &CXTPCalendarRemindersManager::OnEventChanged);
}
m_pResourcesNf->ReBuildInternalData();
//------------------------------------
COleDateTime dtNow = CXTPCalendarUtils::GetCurrentTime();
UpdateDataFromDP(dtNow, m_spPeriod2Cache);
SetTimer(TIMERID_RMD_REFRESH, XTP_CALENDAR_RMD_REFRESH_TIMEOUT, NULL);
//--------------------------------------------------------
m_bMonitoringRunning = TRUE;
NotifyReminders(xtpCalendarRemindersMonitoringStarted);
return TRUE;
}
示例8: 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;
}
示例9: 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;
//.........这里部分代码省略.........