如何在Qt中知道本周的第一天

  • 本文关键字:第一天 Qt qt date calendar
  • 更新时间 :
  • 英文 :


我正在开发一个软件,该软件必须每周维护一个SQL数据库记录。因此,每次启动时,它都不知道当前一周的记录是否已经创建(因此只需要更新它)(因此需要创建该记录)。所有记录都将有一个"日期-时间"参数,其日期值对应于相应星期的第一天。

那么,使用Qt,我怎么能知道那一周的记录是否已经存在?(在算法中,而不是SQL sintax)考虑到我所做的所有算法尝试,我似乎无法逃避需要知道数据库中的最后一天是否是本周的一部分(或者,正如我的问题一样,知道哪一天是本周第一天,这样我就可以与数据库的最后一个条目进行比较),但如何知道呢?我可以做一个手动计算,比如:选择一周中的当前日期和对应的日期,减去x天,直到我到达本周的星期一,看看这是否是存储在数据库中的日期,但我想知道是否有一个更智能的代码,我缺少它。


cco:类似这样的东西:

const QDate lastRecordDate = QDateTime::fromString(query.record().value(0).toString(),DOWNLOAD_DB_DATETIME_FORMAT).date();
const QDate currDate = QDate::currentDate();
const qint32 dayOfWeek = currDate.dayOfWeek();
const qint32 daysDiff = Qt::Monday - dayOfWeek;
const QDate firstDayOfThisWeek = currDate.addDays(daysDiff);
if (lastRecordDate != firstDayOfThisWeek)
    createWeeksRecord = true;

尝试在QDate上使用weekNumber()方法。

const QDate lastRecordDate = QDateTime::fromString(query.record().value(0).toString(),DOWNLOAD_DB_DATETIME_FORMAT).date();
const QDate currDate = QDate::currentDate();
if (lastRecordDate.weekNumber() != currDate.weekNumber())
{
    // Insert new record here.
}
else
{
    // Update record here.
}

最新更新