我在QDateTime
类中寻找addMinutes
方法,但不幸的是,没有向日期时间对象添加分钟这样的事情,我不得不改用addSecs
方法。我查看了 QDateTime
类的头文件,并注意到除了addMinutes
之外,几乎所有时间分辨率都有add-times
方法:
...
QDateTime addDays(int days) const;
QDateTime addMonths(int months) const;
QDateTime addYears(int years) const;
QDateTime addSecs(int secs) const;
QDateTime addMSecs(qint64 msecs) const
...
这对我来说听起来很奇怪,这种省略的原因是什么?
问题是,增加一分钟非常困难:它可能意味着增加 60 秒或 61 秒(闰秒)。由于一分钟有61秒的时刻提前不知道,Qt设计师把它留给你。
addMins(minutes)
等价于addSecs(minutes * 60)
,那么为什么要为如此简单的计算提供另一种方便的方法呢?我想如果 API 设计是我的,我会做出类似的决定。将日、月、年添加到日期需要更复杂的计算,并且一个不容易被另一个取代。由于QDateTime只是QDate + QTime的包装器,我认为这应该解释界面。