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

Reply via email to