因上一版函数测试出现和1月1日同一个周一(1-7),时会出现小一周的情况,如2022年1月8号被识别成第一周。
新改成以下方式:
ceil((start.daysTo(value) - count) /7.0) + 1;
不足两位的补0处理,确保返回值为四位的周别格式。
QString class::getWeek(QDateTime value)
{
int result = -1;
QDateTime start = QDateTime::fromString(value.toString("yyyy") + "0101", "yyyyMMdd");
int myWeek = start.date().dayOfWeek();
int count = 7 - myWeek; // 差值超过该值为下一周
double num = start.daysTo(value);
result = ceil((start.daysTo(value) - count) /7.0) + 1;
QString str = "";
if(result < 10)
str = "0" + QString::number(result);
else
str = result;
str = value.toString("yy") + str;
return str;
}
---------------------------------------------------------旧版分割线----------------------------------------