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 10.9k 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
    #5

    Hi all,

    I am trying to read date from Qstring and I want to extract only month from the date. Can any body tell me how to extract "month" only from the date?

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

      Hi all,

      I am trying to read date from Qstring and I want to extract only month from the date. Can any body tell me how to extract "month" only from the date?

      1 Reply Last reply
      0
      • 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