为什么addDays不起作用?

时间:2017-05-15 17:06:17

标签: c++ qt qt5

这段代码尝试将4个标签设置为周x,周x + 1,周x + 2和周x + 3,但是在使用addDays(7)更新时失败,我只得到周x,周x,第x周和第x周。任何人都可以看到错误?

 ui->setupUi(this);
QDate fecha=QDate::currentDate();
int pr=fecha.weekNumber();
int year=fecha.year();
ui->lab1->setText("Week "+ QString::number(pr) + "\n" + " Year " +QString::number(year));
ui->lab5->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
fecha.addDays(7);
pr=fecha.weekNumber();
year=fecha.year();
ui->lab2->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
ui->lab6->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
fecha.addDays(7);
pr=fecha.weekNumber();
year=fecha.year();
ui->lab3->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
ui->lab7->setText("Week "+ QString::number(pr)  + "\n" + "Year " +QString::number(year));
fecha.addDays(7);
pr=fecha.weekNumber();
year=fecha.year();
ui->lab4->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));
ui->lab8->setText("Week "+ QString::number(pr) + "\n" + "Year " +QString::number(year));

感谢。

1 个答案:

答案 0 :(得分:2)

addDays()函数返回一个带有修改次数的对象,也就是说,它不会在初始对象中累积。

  

QDate QDate :: addDays(qint64 ndays)const

     

返回一个QDate对象,其中包含比日期晚nday的日期   这个对象(如果ndays为负数,则更早。)

     

如果当前日期无效或新日期为,则返回空日期   超出范围。

您必须重新分配返回变量的内容:

fecha = fecha.addDays(7);