Example #1
0
time_t CSPTime::GetTimeTradeLatest( time_t tmTradeFirstToday )
{
	CSPTime	tNow	=	CSPTime::GetCurrentTime();
	CSPTime	tTradeFirstToday( tmTradeFirstToday );
	time_t	tmTradeLatest	=	-1;

	int	nYear	= tTradeFirstToday.GetYear();
	int nMonth	= tTradeFirstToday.GetMonth();
	int	nDay	= tTradeFirstToday.GetDay();

	if( tNow > tTradeFirstToday
		&& tNow.GetYear() == nYear && tNow.GetMonth() == nMonth && tNow.GetDay() == nDay )
	{
		tmTradeLatest	=	tNow.GetTime();
		if( (tNow.GetHour() == 11 && tNow.GetMinute() >= 30)
			|| tNow.GetHour() == 12 )
			tmTradeLatest	=	CSPTime(nYear,nMonth,nDay,11,30,0).GetTime();
		else if( tNow.GetHour() >= 15 )
			tmTradeLatest	=	CSPTime(nYear,nMonth,nDay,15,0,0).GetTime();
	}
	else if( tNow > tTradeFirstToday )
		tmTradeLatest	=	CSPTime(nYear,nMonth,nDay,15,0,0).GetTime();
	
	return tmTradeLatest;
}
Example #2
0
DWORD CSPTime::GetStockTimeNext( DWORD dwDate, int ktype, DWORD dwYear )
{
	CSPTime	sptime;
	if( ktype == ktypeDay )
	{
		if( !sptime.FromStockTimeDay( dwDate ) )
			return -1;
		if( 6 == sptime.GetDayOfWeek() )	//	Friday
			sptime	+=	CSPTimeSpan(3,0,0,0);
		else
			sptime	+=	CSPTimeSpan(1,0,0,0);
		return sptime.ToStockTimeDay();
	}
	else if( ktype == ktypeWeek )
	{
		if( !sptime.FromStockTimeDay( dwDate ) )
			return -1;
		sptime	+=	CSPTimeSpan(7,0,0,0);
		return sptime.ToStockTimeDay();
	}
	else if( ktype == ktypeMonth )
	{
		if( !sptime.FromStockTimeDay( dwDate ) )
			return -1;
		int	nYearNew	=	sptime.GetYear();
		int nMonthNew	=	sptime.GetMonth();
		nYearNew	=	( nMonthNew >= 12 ? nYearNew+1 : nYearNew );
		nMonthNew	=	( nMonthNew >= 12 ? 1 : nMonthNew+1 );
		CSPTime	sptime2( nYearNew, nMonthNew, sptime.GetDay(), sptime.GetHour(),sptime.GetMinute(), sptime.GetSecond() );

		if( 6 == sptime2.GetDayOfWeek() )	//	Friday
			sptime2	+=	CSPTimeSpan(3,0,0,0);
		else
			sptime2	+=	CSPTimeSpan(1,0,0,0);
		return sptime2.ToStockTimeDay();
	}
	else if( ktype == ktypeMin5 )
	{
		if( !sptime.FromStockTimeMin( dwDate ) )
			return -1;
		if( sptime.GetHour() == 11 && sptime.GetMinute() >= 25 )
			sptime	+=	CSPTimeSpan(0,1,35,0);
		else if( sptime.GetHour() == 14 && sptime.GetMinute() >= 55 )
			sptime	+=	CSPTimeSpan(0,18,35,0);
		else
			sptime	+=	CSPTimeSpan(0,0,5,0);
		return sptime.ToStockTimeMin();
	}
	else if( ktype == ktypeMin15 )
	{
		if( !sptime.FromStockTimeMin( dwDate ) )
			return -1;
		if( sptime.GetHour() == 11 && sptime.GetMinute() >= 15 )
			sptime	+=	CSPTimeSpan(0,1,45,0);
		else if( sptime.GetHour() == 14 && sptime.GetMinute() >= 45 )
			sptime	+=	CSPTimeSpan(0,18,45,0);
		else
			sptime	+=	CSPTimeSpan(0,0,15,0);
		return sptime.ToStockTimeMin();
	}
	else if( ktype == ktypeMin30 )
	{
		if( !sptime.FromStockTimeMin( dwDate ) )
			return -1;
		if( sptime.GetHour() == 11 && sptime.GetMinute() >= 0 )
			sptime	+=	CSPTimeSpan(0,2,0,0);
		else if( sptime.GetHour() == 14 && sptime.GetMinute() >= 30 )
			sptime	+=	CSPTimeSpan(0,19,0,0);
		else
			sptime	+=	CSPTimeSpan(0,0,30,0);
		return sptime.ToStockTimeMin();
	}
	else if( ktype == ktypeMin60 )
	{
		if( !sptime.FromStockTimeMin( dwDate ) )
			return -1;
		if( (sptime.GetHour() == 10 && sptime.GetMinute() >= 30) || sptime.GetHour() == 11 )
			sptime	+=	CSPTimeSpan(0,2,30,0);
		else if( sptime.GetHour() == 14 && sptime.GetMinute() >= 0 )
			sptime	+=	CSPTimeSpan(0,19,30,0);
		else
			sptime	+=	CSPTimeSpan(0,1,0,0);
		return sptime.ToStockTimeMin();
	}
	else
	{
		ASSERT( FALSE );
		return -1;
	}
}