Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 647
  • Last Modified:

CDateTimeCtrl Problem

I have a Dialog based application. I added a CDateTimeCtrl to the Dialog template. I added a member variable to the Dialog class of Type CDateTimeCtrl as m_datetimectrlTest. (Using Class Wizard)

When I try to retrieve the time as(say in OnOk() )

CTime mytime;
m_datetimectrlTest.GetTime(time);

TRACE1("Time is %s\n",time.Format("%Hhr%Mmin%Ssec") );

Time is always showing 23 hr 59 min 13 sec ??!!

Can anyone give some hints what the problem could be?
0
ashani
Asked:
ashani
  • 3
  • 3
  • 2
  • +3
1 Solution
 
Meir RivkinFull stack Software EngineerCommented:
here's my code to diaply the time and it works fine:

     CTime mytime;
     m_datetimectrlTest.GetTime(mytime);
     
     int Day = mytime.GetDay();
     int Month = mytime.GetMonth();
     int Year = mytime.GetYear();
     int Minute = mytime.GetMinute();
     int Hour = mytime.GetHour();
     int Second = mytime.GetSecond();

     CString strTime;
     strTime.Format("%d.%d.%d, %d::%d::%d", Month,Day,Year,Hour,Minute,Second);

     TRACE1("Time is %s\n", strTime);

any questions?

     

0
 
Meir RivkinFull stack Software EngineerCommented:
i used your TRACE code also to check if its right and what can i say, it showed the current time.
0
 
ShaunWildeCommented:
are you calling GetTime before or after CDialog::OnOK - I suggest before
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
ZoppoCommented:
Hi,

I also made a little test. The GetTime always returned a CTime with the current time and the
selected date. When I add time-values using CDateTimeCtrl::SetFormat() I can change the
time in the edit-control of the date-time-control and this modified time is returned by GetTime().

ZOPPO
0
 
ashaniAuthor Commented:
I tested this code on a few other machines..I worked fine on every machine except two!!
Could this be a problem with some library version or installation or something...
0
 
ShaunWildeCommented:
> Could this be a problem with some library version or installation or something...

it's possible the control is hosted in comctl32 what versions do you have on the machines?
0
 
ashaniAuthor Commented:
There is VC 6.0 on all the machines..
There is also comctl32 here.
Which version or which file should I look for?
0
 
ahphoneCommented:
I once found the value of the time under debug mode is different from that under release mode.
Under the debug mode ,the date and time is current date and time.But under the release mode, the date and time is 1980/1/1 00:00:00.
0
 
ShaunWildeCommented:
> Which version or which file should I look for

well what version(s) is/are working - and then make sure it is availabe on the other machines
0
 
DanRollinsCommented:
Try switching to using COleDateTime.  Eg,:
//---------------- in OnInitDialog
COleDateTime timeNow;
timeNow.GetCurrentTime();
m_datetimectrlTest.SetTime( timeNow );

//---------------- in OnOK or whenever...

COleDateTime timeInput;
m_datetimectrlTest.GetTime( timeInput );

TRACE1("Time is %d:%d.%d\n",
   timeInput.GetHour(),
   timeInput.GetMinute(),
   timeInput.GetSecond()
);

-- Dan
0
 
ashaniAuthor Commented:
Hi Dan, Thanks for your solution.Sorry I am very late.
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 3
  • 3
  • 2
  • +3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now