Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Is there a way i can get the difference between two QDates
Forum Updated to NodeBB v4.3 + New Features

Is there a way i can get the difference between two QDates

Scheduled Pinned Locked Moved General and Desktop
19 Posts 6 Posters 11.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    shreesh
    wrote on last edited by
    #10

    Thank you for your effort in answering.
    I am trying to put the code as mentioned below, but it throws me an error. Can you please help me in this?

    @QString expt = qry->value(2).toString();
    QDate extract(QDate::fromString(expt, "MM/dd/yyyy"));
    int month = (QDate::month(extract)); //throws error here
    ui->lineEdit_expt->setText(month);@

    1 Reply Last reply
    0
    • K Offline
      K Offline
      koahnig
      wrote on last edited by
      #11

      @
      QString expt = qry->value(2).toString();
      QDate extract(QDate::fromString(expt, "MM/dd/yyyy"));
      int month = extract.month();
      ui->lineEdit_expt->setText(month);
      @
      That should work, but I have just changed your source and did not compile. So, plesae check.

      In addition a friendly recommendation:
      Qt is mainly based on C++. It is recommended to have a sound understanding of C++ basics and how to use it. In my opinion you would benefit from working through a "tutorial for C++":http://www.tutorialspoint.com/cplusplus/. There are many other tutorials like this around.

      Vote the answer(s) that helped you to solve your issue(s)

      1 Reply Last reply
      0
      • K Offline
        K Offline
        koahnig
        wrote on last edited by
        #12

        @
        QString expt = qry->value(2).toString();
        QDate extract(QDate::fromString(expt, "MM/dd/yyyy"));
        int month = extract.month();
        ui->lineEdit_expt->setText(month);
        @
        That should work, but I have just changed your source and did not compile. So, plesae check.

        In addition a friendly recommendation:
        Qt is mainly based on C++. It is recommended to have a sound understanding of C++ basics and how to use it. In my opinion you would benefit from working through a "tutorial for C++":http://www.tutorialspoint.com/cplusplus/. There are many other tutorials like this around.

        Vote the answer(s) that helped you to solve your issue(s)

        1 Reply Last reply
        0
        • S Offline
          S Offline
          shreesh
          wrote on last edited by
          #13

          Thank you, it worked.
          I appreciate your suggestion.

          1 Reply Last reply
          0
          • S Offline
            S Offline
            shreesh
            wrote on last edited by
            #14

            Thank you, it worked.
            I appreciate your suggestion.

            1 Reply Last reply
            0
            • S Offline
              S Offline
              shreesh
              wrote on last edited by
              #15

              I an application I am using the extracted month from Qdate and then to match it with "month" specified in a combobox. There are multiple database entries for a month, but in the output "tableview" only the last matching row is displaying. Below is the code I wrote.
              Can somebody tell me if there is any mistake in the logic?

              @QString filter_month = ui->comboBox_month->currentText();
              QString filter_year = ui->comboBox_year->currentText();

              conn.connopen();
              QSqlQuery * qry = new QSqlQuery();
              
              qry->prepare("select class_date from schedule_class");
              
              if(qry->exec())
              {
              
              
                  while(qry->next())
                  {
                      QString expt = qry->value(0).toString();
              
                      QSqlQueryModel * modal = new QSqlQueryModel();
              
                      QDate extract(QDate::fromString(expt, "MM/dd/yyyy"));
              
                      int m = extract.month();
                      QString month = QString::number(m);
              
                      int y = extract.year();
                      QString year = QString::number(y);
              
                    if(month == filter_month and year == filter_year)
                    {
                    QSqlQuery * qry2 = new QSqlQuery();
                    qry2->prepare("select * from schedule_class where class_date='"+expt+"'");
                    qry2->exec();
              
                    modal->setQuery(* qry2);
              
                    }
                  ui->tableView_classes->setModel(modal);
                  }
                  conn.connclose();
              }
              

              @

              1 Reply Last reply
              0
              • S Offline
                S Offline
                shreesh
                wrote on last edited by
                #16

                I an application I am using the extracted month from Qdate and then to match it with "month" specified in a combobox. There are multiple database entries for a month, but in the output "tableview" only the last matching row is displaying. Below is the code I wrote.
                Can somebody tell me if there is any mistake in the logic?

                @QString filter_month = ui->comboBox_month->currentText();
                QString filter_year = ui->comboBox_year->currentText();

                conn.connopen();
                QSqlQuery * qry = new QSqlQuery();
                
                qry->prepare("select class_date from schedule_class");
                
                if(qry->exec())
                {
                
                
                    while(qry->next())
                    {
                        QString expt = qry->value(0).toString();
                
                        QSqlQueryModel * modal = new QSqlQueryModel();
                
                        QDate extract(QDate::fromString(expt, "MM/dd/yyyy"));
                
                        int m = extract.month();
                        QString month = QString::number(m);
                
                        int y = extract.year();
                        QString year = QString::number(y);
                
                      if(month == filter_month and year == filter_year)
                      {
                      QSqlQuery * qry2 = new QSqlQuery();
                      qry2->prepare("select * from schedule_class where class_date='"+expt+"'");
                      qry2->exec();
                
                      modal->setQuery(* qry2);
                
                      }
                    ui->tableView_classes->setModel(modal);
                    }
                    conn.connclose();
                }
                

                @

                1 Reply Last reply
                0
                • K Offline
                  K Offline
                  koahnig
                  wrote on last edited by
                  #17

                  You should place a new topic.
                  Go into a forum "eg Generanl and Desktop.":http://qt-project.org/forums/viewforum/10/ and press "Start new discussion"
                  Choose describing a bit your problem. This will probably better attract readers for helping. "There are also the forum rules available":http://qt-project.org/wiki/ForumHelp

                  Vote the answer(s) that helped you to solve your issue(s)

                  1 Reply Last reply
                  0
                  • K Offline
                    K Offline
                    koahnig
                    wrote on last edited by
                    #18

                    You should place a new topic.
                    Go into a forum "eg Generanl and Desktop.":http://qt-project.org/forums/viewforum/10/ and press "Start new discussion"
                    Choose describing a bit your problem. This will probably better attract readers for helping. "There are also the forum rules available":http://qt-project.org/wiki/ForumHelp

                    Vote the answer(s) that helped you to solve your issue(s)

                    1 Reply Last reply
                    0
                    • N Offline
                      N Offline
                      Nithya Somasundaram
                      wrote on last edited by
                      #19

                      QDate cdat=QDate::currentDate();
                      QString cur=QVariant(cdat.toJulianDay()).toString();
                      QString exp=QVariant(QVariant(expdtcal).toDate().toJulianDay()).toString();
                      int diff=QVariant(exp).toInt()-QVariant(cur).toInt();
                      if((QVariant(expdtcal).toDate()).toJulianDay() - cdat.toJulianDay() <= 0)
                      {
                      //Don't add medicine
                      qDebug()<<"Expired";
                      }

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved