datehelper.h

来自「管理项目进度工具的原代码」· C头文件 代码 · 共 58 行

H
58
字号
// DateHelper.h: interface for the CDateHelper class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DATEHELPER_H__2A4E63F6_A106_4295_BCBA_06D03CD67AE7__INCLUDED_)
#define AFX_DATEHELPER_H__2A4E63F6_A106_4295_BCBA_06D03CD67AE7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

enum DH_DATE
{
	DHD_TODAY,
	DHD_TOMORROW,
	DHD_ENDTHISWEEK, // start of week + 7
	DHD_ENDNEXTWEEK, // DHD_ENDTHISWEEK + 7
	DHD_ENDTHISMONTH, // beginning of next month - 1
	DHD_ENDNEXTMONTH, // get's trickier :)
	DHD_ENDTHISYEAR,
	DHD_ENDNEXTYEAR,
};

enum DH_UNITS
{
	DHU_DAYS = 'D',
	DHU_WEEKS = 'W',
	DHU_MONTHS = 'M',
	DHU_YEARS = 'Y',
};

class CDateHelper  
{
public:
	static int CalcDaysFromTo(const COleDateTime& dateFrom, const COleDateTime& dateTo, BOOL bInclusive);
	static int CalcDaysFromTo(const COleDateTime& dateFrom, DH_DATE nTo, BOOL bInclusive);
	static int CalcDaysFromTo(DH_DATE nFrom, DH_DATE nTo, BOOL bInclusive);
	static double GetDate(DH_DATE nDate); // 12am

	static int CalcWeekdaysFromTo(const COleDateTime& dateFrom, const COleDateTime& dateTo, BOOL bInclusive);
	static void OffsetDate(COleDateTime& date, int nAmount, DH_UNITS nUnits);

	// DOW = 'day of week'
	static CString FormatDate(const COleDateTime& date, BOOL bISOFormat = FALSE, BOOL bWantDOW = FALSE);
	static CString FormatCurrentDate(BOOL bISOFormat = FALSE, BOOL bWantDOW = FALSE);

	static int FirstDayOfWeek();
	static int LastDayOfWeek();
	static int NextDayOfWeek(int nDOW);

	static CString GetWeekday(int nWeekday, BOOL bShort); // 1-7, sun-sat
	static CString GetMonth(int nMonth, BOOL bShort); // 1-12, jan-nov
	static void GetWeekdays(BOOL bShort, CStringArray& aWeekDays); // sun-sat
	static void GetMonths(BOOL bShort, CStringArray& aMonths); // jan-nov
};

#endif // !defined(AFX_DATEHELPER_H__2A4E63F6_A106_4295_BCBA_06D03CD67AE7__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?