On Monday 03 Aug 2015 19:49:52 Thomas Lübking wrote:
> On Sonntag, 2. August 2015 20:32:43 CEST, David Jarvie wrote:
>
> > Having a date-only attribute in KDateTime is very useful
> > because it allows both date-time and date-only values to be
> > encapsulated in a single class. This avoids having to be able to
> > pass either a QDate or QDateTime or to have a separate flag
> > everywhere this is used, and it allows date-time values to be
> > compared to date-only values using class methods.
>
> Sorry, but I don't follow here.
>
> QDateTime *has* a QDate AND a QTime member.
> They can independently be null/invalid.
>
> => With a QDateTime with invalid QTime member, you *have* a QDate-only
> QDateTime, agreed?
>
> The "problem" would be that
>
> if (kdt.isValid()) {
> if (kdt.isDateOnly())
> foo();
> else
> bar();
> }
>
> turns into:
>
> if (qdt.date().isValid()) {
> if (!qdt.time().isValid())
> foo();
> else
> bar();
> }
>
> right?
> Doesn't look that horrible.
>
> -
>
> Now, it however seems to me you'd like to have a flag "butIgnoreTheTime" that
> hints for some client code behavior, ie. you actually want to carry valid
> date and time in the object, but in addition have a flag _in_the_object_ to
> effectively pass a parameter to a function to do something different with
> this object.
>
> Is this actually correct?
>
> => That frankly sounds like a bool trap on steroids.
>
> You've an object flying around that may or not have set this flag for some™
> ominous reason in the past for some™ function call and different modules
> might have different requirements for this flag for different reasons...
> ewwww.
As I understand it, a QDateTime is invalid if either the date or time component
is invalid. People would usually expect that if QDateTime::isValid() returns
false, the object must be invalid. So a date-only value in which only the date
was valid would make the whole object invalid, which is misleading and would
almost certainly lead to mistakes.
--
David Jarvie.
KDE developer.
KAlarm author -- http://www.astrojar.org.uk/kalarm