使用者自定义任务接口 类
更多...
#include <LunarCalendar.h>
使用者自定义任务接口 类
用法:
- 定义其派生类
{
virtual uint onHandle(const QDate& d,
QStringList& tasks) override final;
};
[Define CTaskHandler derived class]
- 实现接口 CTaskHandler::onHandle
uint CHandler::onHandle(const QDate& d,
QStringList& tasks) {
if(10 == d.month() && 25 == d.day())
{
tasks << "抗美援朝纪念日";
return 0;
}
int lunarYear = 0;
int lunarMonth = 0;
int lunarDay = 0;
if(8 == lunarMonth && 22 == lunarDay)
{
tasks << "结婚纪念日";
return 0;
}
if(21 == d.day())
{
return 1;
}
if(Qt::Wednesday == d.dayOfWeek())
{
tasks << QString();
return 0;
}
if(2015 == d.year() && 10 == d.month() && 22 == d.day())
{
return 1;
}
return 0;
}
static int GetLunar(const QDate date, int &year, int &month, int &day)
得到给定日期的农历(公历转农历)
- 定义变量
QSharedPointer<CHandler> m_Hnadler;
- 实例化对象
m_Hnadler = QSharedPointer<CHandler>(
new CHandler());
- 用 SetTaskHandle 设置处理类
m_pLunarCalendar->SetTaskHandle(m_Hnadler);
- 参见
- SetTaskHandle 使用者自定义任务接口 农历位置显示类型优先级
在文件 LunarCalendar.h 第 344 行定义.
◆ CTaskHandler()
CLunarCalendar::CTaskHandler::CTaskHandler |
( |
| ) |
|
|
inline |
◆ ~CTaskHandler()
virtual CLunarCalendar::CTaskHandler::~CTaskHandler |
( |
| ) |
|
|
inlinevirtual |
◆ onHandle()
virtual uint CLunarCalendar::CTaskHandler::onHandle |
( |
const QDate & |
date, |
|
|
QStringList & |
tasks |
|
) |
| |
|
pure virtual |
使用者自定义任务接口 。请遵守 农历位置显示类型优先级 。
- 参数
-
date | 日期 |
tasks | 任务列表。如果使用者有新任务,并需要在农历位置处显示内容,则加入到此列表中。 |
- 注解
- 加入空字符或"":表示只显示圆点,不显示内容。
- 不设置此值。只返回任务数。表示只显示圆点,不显示内容。
- 请遵守 农历位置显示类型优先级 。
- 返回
- 未加入到 tasks 的任务数。不包括 tasks 中的任务数。
- 注解
- 在 tasks 中增加的新任务,则不计入返回值中, 如果没有其它的未加入 tasks 的任务,则返回 0。 否则返回未加入到 tasks 中的任务数。
例子:
uint CHandler::onHandle(const QDate& d,
QStringList& tasks) {
if(10 == d.month() && 25 == d.day())
{
tasks << "抗美援朝纪念日";
return 0;
}
int lunarYear = 0;
int lunarMonth = 0;
int lunarDay = 0;
if(8 == lunarMonth && 22 == lunarDay)
{
tasks << "结婚纪念日";
return 0;
}
if(21 == d.day())
{
return 1;
}
if(Qt::Wednesday == d.dayOfWeek())
{
tasks << QString();
return 0;
}
if(2015 == d.year() && 10 == d.month() && 22 == d.day())
{
return 1;
}
return 0;
}
- 参见
- 使用者自定义任务接口 农历位置显示类型优先级 SetTaskHandle
该类的文档由以下文件生成: