Exemple #1
0
void CIBAOutputBar::UpdateMsgLog()
{
	////////////////////////查询本班次的信息////////////////////
	CClientShortMsgArray  MsgArray;
	COleDateTime Start, End;
	if (theApp.GetCurCashier()->IsOnDuty())
	{
		Start.ParseDateTime(theApp.GetCurCashier()->GetOnDutyTime());//上班时间
	}
	else
	{	//一天前
		Start = COleDateTime::GetCurrentTime();
		Start -= COleDateTimeSpan(1, 0, 0, 0);
	}
	CString strStart = Start.Format(_T("%Y-%m-%d %H:%M"));

	End = COleDateTime::GetCurrentTime();
	End += COleDateTimeSpan(1, 0, 0, 0);
	CString strEnd = End.Format(_T("%Y-%m-%d %H:%M"));

	CIBADAL::GetInstance()->GetClientShortMsg(MsgArray, strStart, strEnd);

	for (INT i = 0; i < MsgArray.GetCount(); i++)
	{
		AddMsgLog(MsgArray.GetAt(i));
	}
	////////////////////////////////////////////////
}
Exemple #2
0
BOOL CCalendarCtrl::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) 
{	
	COleDateTime newDate = m_DateCurrent;
	if(zDelta < 0){
		// SendMessage(WM_VSCROLL,SB_LINEDOWN);
		newDate += COleDateTimeSpan(7,0,0,0); 	
		if((m_BoundUp > newDate) && (newDate > m_BoundDown))	
		{			
			m_nVscrollPos++;
			SetScrollPos(SB_VERT, m_nVscrollPos, TRUE);
			Goto(newDate);
			return TRUE;
		}
	}
	else if(zDelta > 0){
		// SendMessage(WM_VSCROLL,SB_LINEUP);
		newDate -= COleDateTimeSpan(7,0,0,0);
		if((m_BoundUp > newDate) && (newDate > m_BoundDown))
		{			
			m_nVscrollPos--;
			SetScrollPos(SB_VERT, m_nVscrollPos, TRUE);
			Goto(newDate);
			return TRUE;			
		}
	}
	
	return CWnd::OnMouseWheel(nFlags, zDelta, pt);
}
void CBCGPPlannerViewWorkWeek::OnActivate(CBCGPPlannerManagerCtrl* pPlanner, const CBCGPPlannerView* pOldView)
{
	ASSERT_VALID(pPlanner);

	if (pOldView != NULL)
	{
		m_Date = pOldView->GetDate ();
	}

	m_DateStart = CalculateDateStart (
		COleDateTime(m_Date.GetYear (), m_Date.GetMonth (), m_Date.GetDay (), 0, 0, 0));
	m_DateEnd   = m_DateStart + COleDateTimeSpan (pPlanner->GetWorkWeekInterval () - 1, 23, 59, 59);

	COleDateTime sel1 (m_Date);
	COleDateTime sel2 (m_Date);

	if (pOldView != NULL)
	{
		sel1 = pOldView->GetSelectionStart ();
		sel2 = pOldView->GetSelectionEnd ();
	}

	const int nMinuts = CBCGPPlannerView::GetTimeDeltaInMinuts (pPlanner->GetTimeDelta ());

	sel1 = COleDateTime (m_DateStart.GetYear (), m_DateStart.GetMonth (), m_DateStart.GetDay (),
		pPlanner->GetFirstSelectionHour (), (int)(pPlanner->GetFirstSelectionMinute () / nMinuts) * nMinuts, 0);
	sel2 = sel1 + COleDateTimeSpan (0, 0, nMinuts - 1, 59);

	//SetSelection (sel1, sel2, FALSE);

	CBCGPPlannerView::OnActivate (pPlanner, NULL);

	SetSelection (sel1, sel2);
}
void CNDTermConsumeView::InitData()
{
	if (m_cboTermID.GetCount() > 0)
	{
		return;
	}

	COleDateTime dtTmp;

	if (theApp.GetCurCashier()->IsOnDuty())
	{
		dtTmp.ParseDateTime(theApp.GetCurCashier()->GetOnDutyTime());
	}
	else
	{
		dtTmp = COleDateTime::GetCurrentTime();
		dtTmp -= COleDateTimeSpan(1, 0, 0, 0);
	}

	m_StartTime.SetDate(dtTmp);

	dtTmp = COleDateTime::GetCurrentTime();
	dtTmp += COleDateTimeSpan(1, 0, 1, 0);
	m_EndTime.SetDate(dtTmp);

	for (INT i = 0; i < CLocalServer::GetInstance()->ComputerList.GetCount(); i++)
	{
		m_cboTermID.AddString(CLocalServer::GetInstance()->ComputerList.GetComputer(i).GetTerminalID());
	}
}
CString CBCGPPlannerPrintMonth::GetPageHeaderText () const
{
	CString strText;

	SYSTEMTIME st;
	CString str;

	COleDateTime dtStart (GetDateStart ());
	COleDateTime dtEnd (GetDateEnd ());

	if ((dtStart + COleDateTimeSpan (7, 0, 0, 0)).GetMonth () != 
		dtStart.GetMonth ())
	{
		dtStart += COleDateTimeSpan (7, 0, 0, 0);
	}

	if ((dtEnd - COleDateTimeSpan (7, 0, 0, 0)).GetMonth () != 
		 dtEnd.GetMonth ())
	{
		dtEnd -= COleDateTimeSpan (7, 0, 0, 0);
	}

	dtStart.GetAsSystemTime (st);
	::GetDateFormat
		(
			LOCALE_USER_DEFAULT,
			0,
			&st,
			_T("MMMM yyyy"),
			str.GetBuffer (100),
			100
		);
	str.ReleaseBuffer ();

	strText = str;

	if (dtStart.GetMonth () != dtEnd.GetMonth ())
	{
		dtEnd.GetAsSystemTime (st);
		::GetDateFormat
			(
				LOCALE_USER_DEFAULT,
				0,
				&st,
				_T("MMMM yyyy"),
				str.GetBuffer (100),
				100
			);
		str.ReleaseBuffer ();

		strText += _T(" -\r");
		strText += str;
	}


	return strText;
}
Exemple #6
0
void CCalendarCtrl::Goto(const COleDateTime& dtDate, bool bSelect)
{
	if( (dtDate < m_BoundUp) && 
		(dtDate > m_BoundDown) )
	{
		m_DateCurrent = dtDate;		
		if(m_nFirstWeekDay<1 || m_nFirstWeekDay>7)
			m_nFirstWeekDay = 1;

		COleDateTime dtIte(m_DateCurrent.GetYear(), m_DateCurrent.GetMonth(), m_DateCurrent.GetDay(),0,0,0);
		int narr[7];
		for (int d=0; d<7; d++)	
			narr[((m_nFirstWeekDay-1)+d)%7] = d;
		int nCellStart = narr[dtIte.GetDayOfWeek()-1];
		for(int i=0; i<nCellStart; i++)	
			dtIte -= COleDateTimeSpan(1,0,0,0);

		for(i=0; i<CALENDAR_ROWS ; i++)
		{
			for(int u=0; u<CALENDAR_COLUMNS; u++)
			{
				// Init the cell
				m_dayCells[i][u].date = dtIte;
				m_dayCells[i][u].bPartial = false;
				m_dayCells[i][u].bMark = false;
				m_dayCells[i][u].csaLines.RemoveAll();

				if(m_pfnDataCallback)
					m_pfnDataCallback(this, DateToSeconds(m_dayCells[i][u].date));
				dtIte += COleDateTimeSpan(1,0,0,0);
			}
		}

		if(bSelect)
		{
			m_RandomSelection.RemoveAll();
			m_SelectionRange[2] = 0;
			m_SelectionRange[1] = DateToSeconds(COleDateTime(m_DateCurrent.GetYear(), m_DateCurrent.GetMonth(), m_DateCurrent.GetDay(),0,0,0));
			m_SelectionRange[0] = m_SelectionRange[1];

			// Scrolling pos
			COleDateTime today(time(NULL));
			m_nVscrollPos = (m_nVscrollMax/2) + (m_DateCurrent-today).GetDays()/7;
			SetScrollPos(SB_VERT, m_nVscrollPos, TRUE);
		}
	}

	Invalidate(true);
}
// 设置时间控件的数据
void CCardopenConsumeView::InitDate(void)
{
	COleDateTime tdate;
	if (theApp.GetCurCashier()->IsOnDuty())
	{
		//一天前
		tdate = COleDateTime::GetCurrentTime();
		tdate -= COleDateTimeSpan(1, 0, 0, 0);
	}
	m_StartTime.SetDate(tdate);

	tdate = COleDateTime::GetCurrentTime();
	tdate += COleDateTimeSpan(1, 0, 0, 0);
	m_EndTime.SetDate(tdate);
}
COleDateTime CApp::CalcInterestRate(CEngineMSExcel &excel, const COleDateTime &date, double &fWeeklyAve, double &f3MAve, double &fFridayClose)
{
	COleDateTime friday = excel.GetLastFriday(date);

	BOOL bExist = CSQLCompany::DoesInterestRateRecordExist(friday);
	COleDateTime dtReq = friday;
	if(bExist)
		dtReq -= COleDateTimeSpan(7,0,0,0);

	double values[5];
	excel.GetLastWeekT10ValuesFromBaseLine(friday, values);

	fWeeklyAve = CMath::GetMean(values, 5);
	
	SInterestRateHistory hist;
	int nHist = CSQLCompany::GetInterestRateHistory(dtReq, 12, hist);

	double f3m[13];
	for(int i=0; i<13; i++)
		f3m[i] = _INF_;
	for(int i=0; i<nHist; i++)
		f3m[i] = hist[i].fWeeklyAve;
	f3m[nHist] = fWeeklyAve;

	f3MAve = CMath::GetMean(f3m, nHist+1);
	fFridayClose = values[4];

	return friday;
}
void CBCGPRecurrenceRuleWeekly::CorrectStart ()
{
	COleDateTime dt (GetDateStart ());

	int nWD = dt.GetDayOfWeek () - 1;

	int nWDS = TypeToDayOfWeek (GetStartDay ()) - 1;

	if (nWD == 0)
	{
		nWD = 7;
	}

	if (nWDS == 0)
	{
		nWDS = 7;
	}

	if (nWD != nWDS)
	{
		int delta = nWDS - nWD;
		if (delta < 0)
		{
			delta += 7;
		}

		dt += COleDateTimeSpan (delta, 0, 0, 0);
	}

	if (dt != GetDateStart ())
	{
		SetDateStart (dt);
	}
}
int CXTPCalendarDayViewTimeScale::CalcWidth(CDC* pDC)
{
	// calculate actual correct width
	int nWidth1 = m_nWidth, nWidth2 = m_nWidth;

	// calculate width for midnight
	COleDateTime dtMid(0, 0);
	CString strHour, strMin;
	Format(dtMid, TRUE, &strHour, &strMin);

	COleDateTimeSpan spScaleInterval = GetScaleInterval();
	int nRowHeight = XTP_SAFE_GET1(m_pDayView, GetRowHeight(), 1);
	int nHourHeight = nRowHeight * (CXTPCalendarUtils::GetTotalMinutes(spScaleInterval) < 60 ? 2 : 1);

	XTP_SAFE_CALL3(m_pDayView, GetPaintManager(), GetDayViewTimeScaleCellPart(),
		CalcWidth(pDC, strHour, strMin, nHourHeight, nWidth1));

	// calculate width for midday
	dtMid += COleDateTimeSpan(0, 12, 0, 0);
	Format(dtMid, TRUE, &strHour, &strMin);

	XTP_SAFE_CALL3(m_pDayView, GetPaintManager(), GetDayViewTimeScaleCellPart(),
		CalcWidth(pDC, strHour, strMin, nHourHeight, nWidth2));

	// choose the widest one
	m_nWidth = max(nWidth1, nWidth2);

	return m_nWidth;
}
// 发送扣费记录
void CDlgAutoRegister::SendConsumeRecord( ConsumeNode& node )
{
	static const LONG CodePage_GB2312 = 936; // 简体中文 (GB2312)

	static const LONG WinHttpRequestOption_URLCodePage = 2;

	CWinHttpRequest HttpRequest(FALSE); 

	try
	{
		HttpRequest.Create();
		HttpRequest.SetOption(WinHttpRequestOption_URLCodePage, COleVariant(CodePage_GB2312));

		HttpRequest.SetTimeouts(5000, 5000, 10000, 1000 * 15);

		CString strUrlMain = _T("http://");
		strUrlMain += CNetBarConfig::GetInstance()->GetMainCenterIP();
		strUrlMain.AppendFormat(_T(":%d"), CNetBarConfig::GetInstance()->GetMainCenterPort());
		strUrlMain += _T("/netbar/interface/Consume.jsp");
		strUrlMain.AppendFormat(_T("?pwd=%s"),_T("netbarneibushiyong"));
		strUrlMain.AppendFormat(_T("&submitTime=%s"), CIBAHelpper::FormatTime(COleDateTime::GetCurrentTime()));
		strUrlMain.AppendFormat(_T("&netBarId=%d"),CNetBarConfig::GetInstance()->GetNetBarId());
		strUrlMain.AppendFormat(_T("&refNo=%d"), GetRandomRefNo());
		strUrlMain.AppendFormat(_T("&serialNo=%d"), CIBAConfig::GetInstance()->GetLocalSerialNo());
		strUrlMain.AppendFormat(_T("&memberId=%d"), node.nMemberId);
		strUrlMain.AppendFormat(_T("&checkinTime=%s"), node.checkInTime);
		strUrlMain.AppendFormat(_T("&checkoutTime=%s"), node.checkOutTime);
		strUrlMain.AppendFormat(_T("&classId=%d"), GetRandomClassID());
		strUrlMain.AppendFormat(_T("&pcClass=%d"), GetPCClassID());
		strUrlMain.AppendFormat(_T("&termId=%s"), GetRandomTermID());
		strUrlMain.AppendFormat(_T("&amount=%d"), node.nAmount);
		strUrlMain.AppendFormat(_T("&timeConsume=%d"), node.nTimeConsume);

		strUrlMain.Replace(_T(" "), _T("%20"));

		GXX_TRACE(_T("扣消费记录的请求: %s"), strUrlMain.GetString());


		
		HttpRequest.Open(strUrlMain.GetString());
		HttpRequest.Send();

		DeRegisterNode deRegNode;
		deRegNode.OldDeRegisterTime = node.OleCheckOutTime + COleDateTimeSpan(0, 0, 5, 0);	// 下机后5分钟退款
		deRegNode.nMemberId = node.nMemberId;
		_tcscpy(deRegNode.idNumber, node.idNumber);
		_tcscpy(deRegNode.name, node.name);
		
		deRegNode.bInvalid = 0;
		m_cs.Lock();
		m_arrDeRegisterNode.push_back(deRegNode);
		m_cs.Unlock();

		GXX_TRACE(_T("Response: %s"), HttpRequest.GetResponseText());
	}
	catch(...)
	{

	}
}
//****************************************************************************************
void CBCGPDateTimeCtrl::SetMaxDate(DATE newValue) 
{
	COleDateTime dateMax = newValue;
	COleDateTime dateEmpty;

	if (m_MinDate < dateMax)
	{
		m_MaxDate = dateMax;

		if (m_MaxDate.GetHour () == 0 && m_MaxDate.GetMinute () == 0)
		{
			m_MaxDate -= COleDateTimeSpan (0, 0, 1, 0);	// 1 minute before
		}

		if (m_Date > m_MaxDate && m_MaxDate != dateEmpty)
		{
			m_Date = m_MaxDate;
			OnDateChanged ();
		}

		if (GetSafeHwnd() != NULL)
		{
			RedrawWindow ();
		}
	}
}
void CBCGPPlannerViewMonth::OnActivate(CBCGPPlannerManagerCtrl* pPlanner, const CBCGPPlannerView* pOldView)
{
	ASSERT_VALID(pPlanner);

	if (pOldView != NULL)
	{
		m_Date = pOldView->GetDate ();
	}

	m_nDuration = 35;
	m_DateStart = CalculateDateStart (
		COleDateTime(m_Date.GetYear (), m_Date.GetMonth (), m_Date.GetDay (), 0, 0, 0));
	m_DateEnd   = m_DateStart + COleDateTimeSpan (m_nDuration - 1, 23, 59, 59);

	if (m_Date > m_DateEnd || m_Date < m_DateStart)
	{
		m_Date = m_DateStart;
	}

	COleDateTime sel1 (m_Date);
	COleDateTime sel2 (m_Date);

	if (pOldView != NULL)
	{
		sel1 = pOldView->GetSelectionStart ();
		sel2 = pOldView->GetSelectionEnd ();
	}

	SetSelection (sel1, sel2, FALSE);

	CBCGPPlannerView::OnActivate (pPlanner, NULL);
}
// Start the server. This blocks until the server stops.
void AgentConfigurationEx::start ( )
{
  GLogger.Fatal("AgentConfigurationEx::start\n");

  for ( int i = 0; i < _devices.size( ); i++ )
  {
    ABBAdapter *_cmdHandler = new ABBAdapter(this, config, _devices[i]);
    _cncHandlers.push_back(_cmdHandler);
    _group.create_thread(boost::bind(&ABBAdapter::Cycle, _cncHandlers[i]) );
  }

  if ( Globals.ResetAtMidnight )
  {
    COleDateTime     now          = COleDateTime::GetCurrentTime( );
    COleDateTimeSpan tilnextreset = COleDateTimeSpan(0, 1, 0, 0);
    GLogger.Fatal(StdStringFormat("Agent will Reset from now  %8.4f\n", ( tilnextreset.GetTotalSeconds( ) / 3600.00 ) ) );

    _resetthread.Initialize( );

    _resetthread.AddTimer(
      (long) tilnextreset.GetTotalSeconds( ) * 1000,
      &_ResetThread,
      ( DWORD_PTR ) this,
      &_ResetThread._hTimer        // stored newly created timer handle
      );
  }

  AgentConfigurationT::start( );  // does not return
}
Exemple #15
0
CString CActiveMember::GetUseTimeAsString()
{
	CString strTmp;

	if ( GetIsOnLine() )
	{
		COleDateTime dtNow = COleDateTime::GetCurrentTime();

		COleDateTimeSpan dts = dtNow - CheckInTime;

		//系统时间跟中心事件有差错时,可能存在为负的情况
		if (dts < COleDateTimeSpan(0, 0, 0, 0))//时间为负
		{
			strTmp.Format(_T("%.2d:%.2d"), 0, 0);
		}
		else//正常
		{
			//{ 2011/04/22-gxx: 修改原来支持最大时长24小时为总时长, GetHours()-->GetTotalHours()
			int nHours = (int)dts.GetTotalHours();
			strTmp.Format(_T("%.2d:%.2d"), nHours, dts.GetMinutes());
			//}		
		}
	}

	return strTmp;
}
void CXTPDatePickerItemMonth::OnMouseMove(UINT /*nFlags*/, CPoint point)
{
	if ((m_pControl->m_mouseMode == CXTPDatePickerControl::mouseDeselecting ||
		m_pControl->m_mouseMode == CXTPDatePickerControl::mouseSelecting) &&
		(m_rcDaysArea.PtInRect(point) || m_rcWeekNumbers.PtInRect(point)))
	{
		// check day item
		CPoint ptWeekBegin(m_rcWeekNumbers.right + 3, point.y);
		CXTPDatePickerItemDay* pDay = HitTest(m_pControl->m_bSelectWeek ? ptWeekBegin : point, FALSE);
		if (pDay)
		{
			// save old clicked dates
			COleDateTime dtOldFirstClicked = m_pControl->m_dtFirstClicked;
			COleDateTime dtOldLastClicked = m_pControl->m_dtLastClicked;

			// calculate new clicked dates
			COleDateTime dtDay(pDay->GetDate());
			if (m_pControl->m_bSelectWeek)
			{
				COleDateTime dtWeekEnd(dtDay + COleDateTimeSpan(6, 0, 0, 0));
				if (dtWeekEnd >= m_pControl->m_dtFirstClicked)
				{
					if (dtDay.GetDayOfWeek() != m_pControl->m_dtFirstClicked.GetDayOfWeek())
						m_pControl->m_dtFirstClicked -= COleDateTimeSpan(6, 0, 0, 0);
					m_pControl->m_dtLastClicked = dtWeekEnd;
				}
				if (dtDay < m_pControl->m_dtFirstClicked)
				{
					if (dtDay.GetDayOfWeek() == m_pControl->m_dtFirstClicked.GetDayOfWeek())
						m_pControl->m_dtFirstClicked += COleDateTimeSpan(6, 0, 0, 0);
					m_pControl->m_dtLastClicked = dtDay;
				}
			}
			else
			{
				m_pControl->m_dtLastClicked = dtDay;
			}

			// update control if needed
			if (((dtOldLastClicked - m_pControl->m_dtLastClicked).GetDays() != 0) ||
				((dtOldFirstClicked - m_pControl->m_dtFirstClicked).GetDays() != 0))
			{
				m_pControl->RedrawControl();
			}
		}
	}
}
BOOL CFullBundleTimeInfo::IsNowEnabled()
{
	if (m_strEndTime.IsEmpty()) //没有固定时间的包时
	{
		return TRUE;
	}

	BOOL bNowCanBT = FALSE;

	COleDateTime StartTime, EndTime, CurTime = COleDateTime::GetCurrentTime();

	StartTime.ParseDateTime(m_strStartTime);
	StartTime.SetDateTime(CurTime.GetYear(), CurTime.GetMonth(), CurTime.GetDay(),
		StartTime.GetHour(), StartTime.GetMinute(), StartTime.GetSecond());

	EndTime.ParseDateTime(m_strEndTime);
	EndTime.SetDateTime(CurTime.GetYear(), CurTime.GetMonth(), CurTime.GetDay(),
		EndTime.GetHour(), EndTime.GetMinute(), EndTime.GetSecond());

	if (StartTime > EndTime) //跨天包时
	{
		if (CurTime < EndTime)
		{
			StartTime -= COleDateTimeSpan(1, 0, 0, 0); //减去一天
		}
		else
		{
			EndTime += COleDateTimeSpan(1, 0, 0, 0); //加上一天
		}
	}

	if (CurTime < StartTime) //包时还没开始
	{
		
	}
	else if (CurTime > EndTime) //包时已经过期,只能开始算明天的包时
	{

	}
	else //包时正在进行
	{
		bNowCanBT = TRUE;
	}

	return bNowCanBT;
}
BOOL CBCGPPlannerViewMonth::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	int nPrevOffset = m_nScrollOffset;

	switch (nSBCode)
	{
	case SB_LINEUP:
		m_nScrollOffset -= 1;
		break;

	case SB_LINEDOWN:
		m_nScrollOffset += 1;
		break;

	case SB_TOP:
		m_nScrollOffset = 0;
		break;

	case SB_BOTTOM:
		m_nScrollOffset = m_nScrollTotal;
		break;

	case SB_PAGEUP:
		m_nScrollOffset -= m_nScrollPage;
		break;

	case SB_PAGEDOWN:
		m_nScrollOffset += m_nScrollPage;
		break;

	case SB_THUMBPOSITION:
	case SB_THUMBTRACK:
		m_nScrollOffset = nPos;
		break;

	default:
		return FALSE;
	}

	if (m_nScrollOffset == nPrevOffset)
	{
		return FALSE;
	}

	int nOffset = m_nScrollOffset - nPrevOffset;

	COleDateTimeSpan span = COleDateTimeSpan (nOffset * 7, 0, 0, 0);

	m_Date      += span;
	m_DateStart += span;
	m_DateEnd   += span;

	SetSelection (m_Selection [0] + span, m_Selection [1] + span);

	QueryAppointments ();

	return CBCGPPlannerView::OnVScroll (nSBCode, nPos, pScrollBar);
}
void CBCGPPlannerViewWorkWeek::SetDate (const COleDateTime& date)
{
	COleDateTime dt (date.GetYear (), date.GetMonth (), date.GetDay (), 0, 0, 0);

	m_DateStart = CalculateDateStart (dt);
	m_DateEnd   = m_DateStart + COleDateTimeSpan (GetWorkWeekInterval () - 1, 23, 59, 59);

	CBCGPPlannerView::SetDate (dt);
}
void CNDTermConsumeView::OnTimer(UINT nIDEvent)
{
	COleDateTime dtTmp;

	dtTmp = COleDateTime::GetCurrentTime();
	dtTmp += COleDateTimeSpan(0, 0, 1, 0);
	m_EndTime.SetDate(dtTmp);

	CIBAFormView::OnTimer(nIDEvent);
}
void COCalendar::WalkDays(int i)
{
	COleDateTime dt=m_WMCtrl.GetLastClicked();
	if(i>0){
		dt+=COleDateTimeSpan(i,0,0,0);
	}else{
		dt-=COleDateTimeSpan(-i,0,0,0);
	}
	COleDateTime dt1;
	COleDateTime dt2;
	m_WMCtrl.GetDateRange(&dt1,&dt2);
	if(m_WMCtrl.GetCellByDate(dt) && dt>=dt1 && dt<=dt2){
		m_WMCtrl.HightlightCellByDate(dt);
	}else{
		m_WMCtrl.SetCurrentDate(dt, FALSE, bMonView?WV_MONTHVIEW:WV_WEEKVIEW);
		m_WMCtrl.HightlightCellByDate(dt);
		RefreshCalendar();
	}
}
CBCGPPlannerViewMonth::CBCGPPlannerViewMonth()
	: CBCGPPlannerView   ()
	, m_nHeaderHeight    (0)
	, m_nWeekBarWidth    (0)
	, m_bDrawTimeFinish  (TRUE)
	, m_bDrawTimeAsIcons (FALSE)
	, m_bCompressWeekend (TRUE)
	, m_nDuration        (35)
{
	m_DateEnd = m_DateStart + COleDateTimeSpan (m_nDuration - 1, 23, 59, 59);
}
void CXTPCalendarController::SetFirstDayOfWeekToDatePicker()
{
    if (m_pDatePickerCtrl && m_pCalendarCtrl)
    {
        int nFirstDayOfWeekIndex = m_pCalendarCtrl->GetFirstDayOfWeek();
//<<<
        int nOldFirstDayOfWeekIndex = m_pDatePickerCtrl->GetFirstDayOfWeek();

        COleDateTime dt1, dt2;
        m_pDatePickerCtrl->GetSelRange(dt1, dt2);
        dt1 += COleDateTimeSpan(nFirstDayOfWeekIndex - nOldFirstDayOfWeekIndex, 0, 0, 0);
        dt2 += COleDateTimeSpan(nFirstDayOfWeekIndex - nOldFirstDayOfWeekIndex, 0, 0, 0);

        int nViewType = m_pCalendarCtrl->GetActiveView()->GetViewType();
        if (nViewType == xtpCalendarWeekView)
            m_pDatePickerCtrl->SetSelRange(dt1, dt2);
//>>>
        m_pDatePickerCtrl->SetFirstDayOfWeek(nFirstDayOfWeekIndex);
    }
}
Exemple #24
0
void CCalendarCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	int nInc = 0;
    switch (nSBCode)
    {
        case SB_TOP:
        case SB_LINEUP:
        case SB_PAGEUP:     
			nInc = -1;
			break;
		case SB_BOTTOM:
		case SB_LINEDOWN:
        case SB_PAGEDOWN:
			nInc = 1;
			break;
        case SB_THUMBTRACK: 
			nInc = nPos - m_nVscrollPos;
			break;
		case SB_ENDSCROLL:	
        default:
			nInc = 0;
    }

    m_nVscrollPos += nInc;	
	if(nInc)
	{		
		COleDateTime newDate = m_DateCurrent;
		if(nInc > 0) 
			newDate += COleDateTimeSpan(abs(7*nInc),0,0,0); 
		else 
			newDate -= COleDateTimeSpan(abs(7*nInc),0,0,0);
		if((m_BoundUp > newDate) && (newDate > m_BoundDown))
			Goto(newDate);
		else
			m_nVscrollPos -= nInc;
		SetScrollPos(SB_VERT, m_nVscrollPos, TRUE);
	}
	
	SetFocus();
	CWnd::OnVScroll(nSBCode, nPos, pScrollBar);
}
CString CFullBundleTimeInfo::GetEndTime(BOOL bForce /*= FALSE*/)
{
	if (bForce && m_strEndTime.IsEmpty())
	{
		COleDateTime dtTmp = COleDateTime::GetCurrentTime();

		dtTmp += COleDateTimeSpan(0, m_nTimePass, 0, 0);

		return dtTmp.Format(_T("%H:%M:%S"));
	}

	return m_strEndTime;
}
Exemple #26
0
// ///////////////////////////////////////////////////////////////////////////
//
COleDateTime MaxMonthDate( int month, int year )
{
	if (++month > 12)
	{
		month = 1;
		year++;
	}

	COleDateTime date(year, month, 01, 0,0,0);
	date -= COleDateTimeSpan(0,0,1,0);

	return date;
}
void CBCGPRecurrenceRuleDaily::CorrectStart ()
{
	if (m_Type == BCGP_REC_RULE_DAILY_TYPE_WEEKDAYS)
	{
		COleDateTime dt (GetDateStart ());
		int nWD = dt.GetDayOfWeek ();

		if (nWD == 1)
		{
			dt += COleDateTimeSpan (1, 0, 0, 0);
		}
		else if (nWD == 7)
		{
			dt += COleDateTimeSpan (2, 0, 0, 0);
		}

		if (dt != GetDateStart ())
		{
			SetDateStart (dt);
		}
	}
}
Exemple #28
0
int CCalSupport::GetDaysInMonth()
{
	int iYear = m_pCalSym->m_iYear;
	int iNextMonth = m_pCalSym->m_iMonth + 1;
	if (iNextMonth == 13)
	{
		iNextMonth = 1;
		iYear++;
	}
	COleDateTime Date(iYear, iNextMonth, 1, 0,0,0); // The first day of next month
	Date -= COleDateTimeSpan(1,0,0,0); // 1 day
	return Date.GetDay();
}
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);
}
Exemple #30
0
// ///////////////////////////////////////////////////////////////////////////
//
COleDateTime Time2AdjustedDate( const CString& sTime, const COleDateTime& startDate )
{
	int hr,min;
	String2HourMin(sTime, hr, min);

	// If the given time is before the startDate's time, then the target date is one day further
	//
	if ((hr < startDate.GetHour()) || ((hr == startDate.GetHour()) && (min < startDate.GetMinute())))
	{
		COleDateTime dt = startDate + COleDateTimeSpan(1,0,0,0);
		return COleDateTime(dt.GetYear(), dt.GetMonth(), dt.GetDay(), hr, min, 0);
	}

	return COleDateTime(startDate.GetYear(), startDate.GetMonth(), startDate.GetDay(), hr, min, 0);
}