QDateTime pttoqt(const boost::posix_time::ptime &pt) { boost::gregorian::date gd = pt.date(); boost::posix_time::time_duration gt = pt.time_of_day(); QDate qdate(gd.year(), gd.month(), gd.day()); QTime qtime(gt.hours(), gt.minutes(), gt.seconds()); return QDateTime(qdate, qtime); }
QDateTime KDateTimeDlg::getDateTime() { QDateTime qdt; QTime qtime(_hours->value(), _mins->value(), _secs->value()); qdt.setDate(_date->date()); qdt.setTime(qtime); return qdt; }
int FlowRead::f(ptime time, int dt) { boost::gregorian::date gd = time.date(); boost::posix_time::time_duration gt = time.time_of_day(); QDate qdate(gd.year(), gd.month(), gd.day()); QTime qtime(gt.hours(), gt.minutes(), gt.seconds()); QDateTime current(qdate, qtime); ctxt.setOutPort(&out, current, dt); return dt; }
QString Ut::conv(QString s) { const int TIME = 28; int year = s.mid(TIME+0,4).toInt(); int month = s.mid(TIME+4, 2).toInt(); int day = s.mid(TIME+6, 2).toInt(); QDate qdate(year, month, day); int hour = s.mid(TIME+8, 2).toInt(); int minute = s.mid(TIME+10, 2).toInt(); int second = s.mid(TIME+12, 2).toInt(); QTime qtime(hour, minute, second); QDateTime qdt(qdate, qtime); qDebug() << "LST " << year << zero(month) << zero(day) << zero(hour) << zero(minute) << zero(second) << endl; qDebug() << qdate << qtime << qdt; // double Longitude = hours(13, 3, 52.65); // Zeiss-Triplet QString hhmmss; if (ui.ST2UT->isChecked()) { double UT = ST2UT(qdt); hhmmss = h2hhmmss(UT); qtime = QTime::fromString(hhmmss, "hhmmss"); qdt = QDateTime(qdate, qtime); if (qtime.hour() < 12) qdt = qdt.addDays(1); /* предполагаме, че датата е началото на нощта и не е сменяна през цялата нощ */ /* предполагаме, че датата в началото на нощта е същата, както в часова зона 0 */ } else { qdt = qdt.addSecs(-dsavingtime(qdt)*60*60); // LT -> UT // UT = hours(qdt.time().hour(), qdt.time().minute(), qdt.time().second()); } QString sout = s.left(TIME) + qdt.toString("yyyyMMddhhmmss") + s.mid(TIME+14); qDebug() << s; qDebug() << sout; return sout; }
void TodoList::mousePressEvent(QMouseEvent *event){ int x = event->globalPos().x() - this->pos().x(); int y = event->globalPos().y() - this->pos().y(); pressX = x; pressY = y; oldMoveY = moveY; mousePre = true; if(y < 76 && (x >= 68 && x <= 105)){ viewDate.ToLastMonth(); ChangeState(WINSTATE::LIST); } if(y < 76 && (x >= 318 && x <= 355)){ viewDate.ToNextMonth(); ChangeState(WINSTATE::LIST); } //qDebug("%d %d",x,y); if(y < 76 && (x >= 255 && x <= 320)){ viewState = VIEWSTATE((int(viewState) + 1)%3); ChangeState(WINSTATE::LIST); } mouseList[mouseCount ++] = event->button()==Qt::LeftButton; mouseTime = 20; //以下把y转为绘制画面的相对坐标 //相对选择项目的坐标 int sy = y - moveY; selectIndex = (sy - 95) / 80; if(ValidIndex()) oldMoveX = indexPosX[selectIndex]; if(ValidIndex() && indexID[selectIndex] != -1){ int id = indexID[selectIndex]; int viewYear = viewDate.year; int viewMonth = viewDate.month; TodoItem &item = pa.GetItem(id,viewYear,viewMonth); int offset = selectIndex * 80; if(85 <= x && x <= 120 && 110 + offset <= sy && sy <= 140 + offset){ pa.MarkAsDone(id,viewYear,viewMonth,!item.HaveDone()); } if(mouseCount >= 2 && mouseList[0] && mouseList[1]){ //跳转到添加新Todo界面 ui->nameBox->setText(QString::fromStdString(item.GetName())); switch (item.GetLevel()) { case 0: ui->radioButton_4->setChecked(true);break; case 1: ui->radioButton_2->setChecked(true);break; case 2: ui->radioButton_3->setChecked(true);break; case 3: ui->radioButton_1->setChecked(true);break; } ui->horizontalSlider->setValue(item.GetWarnTime()/5); SetWarnText(ui->horizontalSlider->value()); Date date = item.GetTime(); QDate qdate(date.year,date.month,date.day); QTime qtime(date.hour,date.minute); ui->dateTimeEdit->setDateTime(QDateTime(qdate,qtime)); ui->placeBox->setText(QString::fromStdString(item.GetPlace())); ui->labelBox->setText(QString::fromStdString(item.GetLabel())); ui->contentBox->setText(QString::fromStdString(item.GetContent())); ui->comboBox->setCurrentIndex(item.GetKind()); selectID = id; ChangeState(WINSTATE::DETAIL); mouseCount = 0; } if(mouseCount >= 2 && !mouseList[0] && !mouseList[1]){ pa.RemoveTodo(id,viewYear,viewMonth); mouseCount = 0; } } }
bool Timehelper::beforenow(QString date, QString time) { QDate qdate(date.mid(0,4).toInt(),date.mid(5,2).toInt(),date.mid(8,2).toInt()); QTime qtime(time.mid(0,2).toInt(),time.mid(3,2).toInt()); return QDateTime::currentDateTime().secsTo(QDateTime(qdate,qtime)) < 0; }