Russian Qt Forum
Сентябрь 29, 2024, 22:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как получить дату за три дня назад...?  (Прочитано 2125 раз)
zoro86
Гость
« : Март 17, 2010, 09:27 »

на данный момент делаю через жопу...
вот так:
Код:
        QDate date;
QString vrmDateTo = date.currentDate().toString("yyyy-MM-dd");
QString vrmYearTo = date.currentDate().toString("yyyy");
QString vrmMounthTo = date.currentDate().toString("MM");
QString vrmDayTo = date.currentDate().toString("dd");

QString vrmDateFrom;
QString vrmYearFrom;
QString vrmMounthFrom;
QString vrmDayFrom;

int deyTo = vrmDayTo.toInt();
int mounthTo = vrmMounthTo.toInt();

int mounthFrom = vrmMounthTo.toInt();
int yearFrom = vrmYearTo.toInt();

int deyFrom = 0;
if (deyTo>=3){
deyFrom = deyTo - 2;
QString DeyFrom = QString("%1").arg(deyFrom);
int lenDeyFrom = DeyFrom.length();
if(lenDeyFrom==1){
vrmDayFrom = "0" + DeyFrom;
}
vrmYearFrom = vrmYearTo;
vrmMounthFrom = vrmMounthTo;
}else{
if(mounthTo>1){
mounthFrom --;
vrmMounthFrom = QString("%1").arg(vrmMounthFrom);
}else{
mounthFrom = 12;
yearFrom --;
vrmMounthFrom = QString("%1").arg(vrmMounthFrom);
vrmYearFrom = QString("%1").arg(yearFrom);
}
QDate dateFrom(yearFrom,mounthFrom,1);
int deyOfMounth = dateFrom.daysInMonth();

if(deyTo == 2){
vrmDayFrom = QString("%1").arg(deyOfMounth);
}else{
deyOfMounth --;
vrmDayFrom = QString("%1").arg(deyOfMounth);
}
if(mounthFrom < 10){
vrmMounthFrom = "0" + vrmMounthFrom;
}
}
vrmDateFrom = vrmYearFrom + "-" + vrmMounthFrom + "-" + vrmDayFrom;

if(Debuger) qDebug() << vrmDateFrom;
if(Debuger) qDebug() << vrmDateTo;

работате супер... мне тут в SQLLite таблицу надо обращатся и вытаскивать данные за последние три дня...
если сегодня число 2010-03-02 то за три дня он должно получаться 2010-02-28 поэтому и алгоритм слегка мудренный..
Записан
BRE
Гость
« Ответ #1 : Март 17, 2010, 09:38 »

Посмотри на QDate::addDays:
Код
C++ (Qt)
       QDate date( 2010, 3, 2 );
       qDebug() << date << date.addDays( -2 );
 
Записан
zoro86
Гость
« Ответ #2 : Март 17, 2010, 09:43 »

Как говорится дурная голова башке покоя не дает... Смеющийся
на самом деле
Цитировать
QDate QDate::addDays ( int ndays ) const
Returns a QDate object containing a date ndays later than the date of this object (or earlier if ndays is negative).

не обратил внимание на то что в скобках Плачущий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.22 секунд. Запросов: 20.