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.
  • K Offline
    K Offline
    koahnig
    wrote on last edited by
    #7

    You can convert a string with "QDate::fromString":http://qt-project.org/doc/qt-5/qdate.html#fromString and you get the month through "month":http://qt-project.org/doc/qt-5/qdate.html#month

    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
      #8

      You can convert a string with "QDate::fromString":http://qt-project.org/doc/qt-5/qdate.html#fromString and you get the month through "month":http://qt-project.org/doc/qt-5/qdate.html#month

      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
        #9

        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
        • 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