作者:朱金灿
来源:clever101的专栏
思路:
1.获取两个日期中的日子差;
2.利用QDate类的addDays接口通过日子差获取具体日期。具体代码如下:
#include <QtCore/QDate>
#include <QtCore/QDebug>
/*获取两个日期范围中的所有日期
beginDate -- 起始日期
endDate -- 结束日期
*/
static QList<QDate> GetAllDate(const QDate& beginDate, const QDate& endDate)
{
QList<QDate> listDate;
listDate.push_back(beginDate);
qint64 nDay = beginDate.daysTo(endDate);
if (nDay > 1)
{
for (int i = 1; i <= (nDay - 1); i++)
{
QDate nextDate = beginDate.addDays(i);
listDate.push_back(nextDate);
}
}
listDate.push_back(endDate);
return listDate;
}
//测试程序
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDate beginDate = QDate(2021, 3, 20);
QDate endDate = QDate(2022, 3, 20);
QList<QDate> listDate = GetAllDate(beginDate, endDate);
for (int i = 0;i<listDate.count();i++)
{
qDebug() << listDate[i].year()<<":"<<listDate[i].month() << ":"<< listDate[i].day()<<"\n";
}
}