首页 > 解决方案 > 如何从给定的 QDate 获得第一个星期五?

问题描述

考虑一个Qdate

QDate Mydate = ui->dateEdit->date();

例如,假设我们选择2018/07/14(今天)。

如何获取所选月份(在本例中为 7 月)的第一个星期五(本例中为 6)的日期?

我怀疑我们必须使用Mydate.dayOfWeek()计算。

标签: qtqdate

解决方案


可能有一个更简洁的解决方案,但是:

  1. 从 dayOfMonth 中减去 dayOfWeek 以获得当前日期/日期。
  2. 加 5(星期五)。
  3. 如果 -ve 添加 7 或 +ve 答案是模数 7。

代码:

dayOfWeekToday = MyDate.dayOfWeek()
firstFriday = MyDate.day() - dayOfWeekToday + 5
firstFriday = (firstFriday <= 0) ? firstFriday + 7 : firstFriday % 7

推荐阅读