crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QDate....
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
LE0N Дата 31.3.2009, 17:02
 
Цитата
Такой вот финт ушами. Чем он не устраивает? Небольшим преобразованием получаем то что хотим, икономя при этом место

Я примерно точно так же ушами вертел :) ПРосто без ковычек :) В первые с датой работаю ))
Litkevich Yuriy Дата 31.3.2009, 15:16
 
Цитата(igor_bogomolov @ 31.3.2009, 19:03) *
Такой вот финт ушами. Чем он не устраивает?
да, факт, это я не понял.
igor_bogomolov Дата 31.3.2009, 15:03
  Не знаю, что вы имеете ввиду под химией.
    QDate date = QDate::fromString(str, "dd.MM.yy"); \\ здесь действительно 31 марта 1909 года
    date = QDate::fromString(date.toString("dd.MM.'20'yy"), "dd.MM.yyyy"); \\ а вот здесь уже 31 марта 2009. Не строка, а именно дата.


Такой вот финт ушами. Чем он не устраивает? Небольшим преобразованием получаем то что хотим, икономя при этом место :rolleyes:
Litkevich Yuriy Дата 31.3.2009, 14:58
 
Цитата(igor_bogomolov @ 31.3.2009, 18:26) *
получил QDate
"31.03.2009"
ты получил QDate соответствующий 31 марта 1909 года. А то что ты вывел в консоль - это просто химия. В первом посте вывод в консоль сделан для отладки, если я не ошибаюсь.
igor_bogomolov Дата 31.3.2009, 14:26
 
Цитата(Litkevich Yuriy @ 31.3.2009, 15:19) *
дата-то все равно не та.

Не понял? Почему не та?
Я установил QString str = "31.03.09";
получил QDate
"31.03.2009"

???????

Разве не этого добивались?????
Litkevich Yuriy Дата 31.3.2009, 14:19
 
Цитата(igor_bogomolov @ 31.3.2009, 17:21) *
warning: "31.03.2009"
warning-то как раз тут и интересен!
дата-то все равно не та.

-----
Цитата(LE0N @ 31.3.2009, 17:07) *
Жалко, конечно, что такое поведение не документировано...
тут ты не прав:
Цитата
Note that QDate interprets two digit years to be in the 1900s, e.g., 50 will equals 1950.
(второй абзац подробного описания)
и конструктор:
Цитата
QDate::QDate ( int y, int m, int d )
Constructs a date with year y, month m and day d.
If the specified date is invalid, the date is not set and isValid() returns false. A date before 2 January 4713 B.C. is considered invalid.

Warning: Years 1 to 99 are interpreted as being in the 1900s. If you want to specify the year 2010, you must write 2010, not 10.
igor_bogomolov Дата 31.3.2009, 13:21
  А если так:

    QString str = "31.03.09";
    QDate date = QDate::fromString(str, "dd.MM.yy");
    date = QDate::fromString(date.toString("dd.MM.'20'yy"), "dd.MM.yyyy");

    qDebug() << date.toString(Qt::SystemLocaleDate);

qDedug пишет:
Цитата
warning: "31.03.2009"

8)
LE0N Дата 31.3.2009, 13:07
  Жалко, конечно, что такое поведение не документировано....
И ещё больше - что маску типа 20yy задать нельзя...
Я ведь часа два не мог вчера понять в чём дело :) Правда уставший был...Понял только сегодня, когда обратил внимание на год :)
Litkevich Yuriy Дата 31.3.2009, 12:33
 
Цитата(LE0N @ 31.3.2009, 16:23) *
я место хотел сэкономить
А ты не экономь.
LE0N Дата 31.3.2009, 12:23
 
qDebug() << ui.tableWidget->item(i,5)->text();
qDebug() << QDate::fromString(ui.tableWidget->item(i,5)->text(),"dd.MM.yy");

Выводит:
"04.04.09"
QDate("Вс апр 4 1909")
Я, конечно, всё понимаю....НО! Нахера мне 1909 год :( Обязательно вбивать yyyy ? я место хотел сэкономить :(((
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 18:02