Exemple #1
0
/// <summary>
/// 判定给定的年月日是否是一个有效的日期
/// </summary>
/// <param name="year">给定的年份</param>
/// <param name="month">给定的月份</param>
/// <param name="day">给定的日子</param>
/// <returns>true:给定的年月日是一个有效的日期。false:不是一个有效的日期。</returns>
bool CDateTime::ValidateDate(int year, int month, int day)
{
    if (!ValidateDate(year, month))
        return false;

    if ((day < 1) || (day > GetDaysOfMonth(year, month)))
        return false;

    return true;                       
}
Exemple #2
0
int BTS_Time(int year,int month,int day)
{
    //days records the days between two dates
    int days=0,j;
    int std_year=BEIDOU_YEAR;
    int std_month=BEIDOU_MONTH;
    int std_day=BEIDOU_DAY;
    for(j=std_year;j<year;j++)
        days+=(IsLeapYear(j)?366:365);
    days+=GetDaysOfMonth(year,month,day);
    //divide 7 to count the weeks
    return (days/7+1);
}
Exemple #3
0
Date LastDayOfMonth(Date d) {
	d.day = GetDaysOfMonth(d.month, d.year);
	return d;
}
Exemple #4
0
CString *CTimer::GetTimeString (void)
{
	m_TimeSpinLock.Acquire ();

	unsigned nTime = m_nTime;
	unsigned nTicks = m_nTicks;

	m_TimeSpinLock.Release ();

	if (   nTime == 0
	    && nTicks == 0)
	{
		return 0;
	}

	unsigned nSecond = nTime % 60;
	nTime /= 60;
	unsigned nMinute = nTime % 60;
	nTime /= 60;
	unsigned nHours = nTime;
	unsigned nHour = nTime % 24;
	nTime /= 24;

	unsigned nYear = 1970;
	while (1)
	{
		unsigned nDaysOfYear = IsLeapYear (nYear) ? 366 : 365;
		if (nTime < nDaysOfYear)
		{
			break;
		}

		nTime -= nDaysOfYear;
		nYear++;
	}

	unsigned nMonth = 0;
	while (1)
	{
		unsigned nDaysOfMonth = GetDaysOfMonth (nMonth, nYear);
		if (nTime < nDaysOfMonth)
		{
			break;
		}

		nTime -= nDaysOfMonth;
		nMonth++;
	}

	unsigned nMonthDay = nTime + 1;

	nTicks %= HZ;
#if (HZ != 100)
	nTicks = nTicks * 100 / HZ;
#endif

	CString *pString = new CString;
	assert (pString != 0);

	if (nYear > 1975)
	{
		pString->Format ("%s %2u %02u:%02u:%02u.%02u", s_pMonthName[nMonth], nMonthDay, nHour, nMinute, nSecond, nTicks);
	}
	else
	{
		pString->Format ("%02u:%02u:%02u.%02u", nHours, nMinute, nSecond, nTicks);
	}

	return pString;
}
Exemple #5
0
bool Date::IsValid() const {
	return year == -32768 || month >= 1 && month <= 12 && day >= 1 && day <= GetDaysOfMonth(month, year);
}