考虑一个Qdate
从
QDate Mydate = ui->dateEdit->date();
例如,假设我们选择2018/07/14
(今天)。
如何获取所选月份(在本例中为 7 月)的第一个星期五(本例中为 6)的日期?
我怀疑我们必须使用Mydate.dayOfWeek()
计算。
可能有一个更简洁的解决方案,但是:
代码:
dayOfWeekToday = MyDate.dayOfWeek()
firstFriday = MyDate.day() - dayOfWeekToday + 5
firstFriday = (firstFriday <= 0) ? firstFriday + 7 : firstFriday % 7
添加到尼克的答案中,需要有一种特殊情况,其中的结果MyDate.day() - dayOfWeekToday + 5
可以被 7 整除。类似于:
dayOfWeekToday = MyDate.dayOfWeek()
firstFriday = MyDate.day() - dayOfWeekToday + 5
firstFriday = (firstFriday <= 0) ? firstFriday + 7
: (firstFriday % 7 == 0) ? 7 : firstFriday % 7