|
|
|
Forum Member
      
участник
Last Login: 21.10.2006 17:09
Сообщ.: 27,
Visits: 231
|
|
Подскажите, как можно получить часть даты - отдельно год, день, и номер месяца - из переменной CTime ...я думала, что GetYear(), GetDay() будут работать, но они возвращают почему-то дату начального отсчёта - соответственно 01, 01, 1970 (хотя содержимое исходной переменной точно не такое)
когда я использую .Format - я получаю строку ведь на выходе...или её потом в int переводить и только так работать?
и ещё - можно ли с помощью встроенных функций работы с датами, имея начальную дату и зная сколько всего дней прошло от этой даты - преобразовать её в кол-во лет + месяцев + дней
|
|
|
|
|
Forum Guru
      
участник
Last Login: 15.10.2008 20:53
Сообщ.: 60,
Visits: 642
|
|
Вы случайно не забыли инициализировать CTime
CTime tm(2006,07,20,11,59,59);
или
CTime tm = CTime::GetCurrentTime();
int nDay = tm.GetDay(); //20
int nYear = tm.GetYear(); //2006
int nSecond = tm.GetSecond(); //59
int nMonth = tm.GetMonth(); //7
int nHour = tm.GetHour(); //11
CTimeSpan span(2,10,0,0);
tm += span;
int nDay = tm.GetDay(); //22
int nYear = tm.GetYear(); //2006
int nSecond = tm.GetSecond(); //59
int nMonth = tm.GetMonth(); //7
int nHour = tm.GetHour(); //21
А вообще, я использую COleDateTime и COleDateTimeSpan, но это дело вкуса :)
|
|
|
|
|
Forum Member
      
участник
Last Login: 21.10.2006 17:09
Сообщ.: 27,
Visits: 231
|
|
Logot (23.07.2006) Вы случайно не забыли инициализировать CTime
CTime tm(2006,07,20,11,59,59);
или
CTime tm = CTime::GetCurrentTime();
не забыла :-)
Logot (23.07.2006)
int nDay = tm.GetDay(); //20
int nYear = tm.GetYear(); //2006
int nSecond = tm.GetSecond(); //59
int nMonth = tm.GetMonth(); //7
int nHour = tm.GetHour(); //11
Всё понятно..я почему-то решила, что tm.GetDay(); должно быть CTime
Logot (23.07.2006)
CTimeSpan span(2,10,0,0);
tm += span;
Возьму на заметку, хотя не совсем то, что мне нужно...я хочу на введённую дату выдать ответ, что до сегодняшнего дня с той даты прошло столько месяцев, дней, лет.
Я собссно вот что делаю:
CTime currt=CTime::GetCurrentTime();
CTimeSpan diff=currt-m_DTP;
/*m_DTP переменная привязанная к DateTimePicker*/
и в результате у меня diff получается кол-во дней ...и проблема скажем 586 дней разбить на 1 год X месяцев Y дней
Хотя, может я неправильно делаю :(
|
|
|
|