QT5-控件-QDateEdit 和 日期類QDate

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDate>
#include <QDateEdit>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

    QDateEdit* dateEdit[4];

public slots:
    void dateChanged();
};

#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QtDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->resize(490,370);
    this->centralWidget();

    QDate dt1 = QDate(1994,10,13);
    QDate dt2 = QDate::currentDate();

    dateEdit[0] = new QDateEdit(dt1.addYears(2),this);
    dateEdit[0]->setGeometry(10,10,140,40);

    dateEdit[1] = new QDateEdit(dt1.addMonths(2),this);
    dateEdit[1]->setGeometry(160,10,140,40);

    dateEdit[2] = new QDateEdit(dt1.addDays(2),this);
    dateEdit[2]->setGeometry(310,10,140,40);

    dateEdit[3] = new QDateEdit(dt2,this);
    dateEdit[3]->setGeometry(10,60,140,40);

    // 判斷日期是否合法1
    if(QDate::isValid(2016,02,30))
    {
        qDebug()<<"2016-02-30是合法日期";
    }
    else
    {
        qDebug()<<"2016-02-30是非法日期";
    }
    // 判斷日期是否合法2
    if(QDate(2016,02,21).isValid())
    {
        qDebug()<<"2016-02-21是合法日期";
    }
    else
    {
        qDebug()<<"2016-02-21是非法日期";
    }
    // 從字符串格式化獲得日期
    QDate dt3 = QDate::fromString("2016.02.01","yyyy.MM.dd");
    QDate dt4 = QDate::fromString("02-01","MM-dd");
    qDebug()<<"字符串1格式化獲得的時間"<<dt3.toString();
    qDebug()<<"字符串2格式化獲得的時間"<<dt4.toString();
    // 將時間轉化爲字符串
    qDebug()<<"TextDate格式(默認):"<<dt3.toString(Qt::TextDate);
    qDebug()<<"ISO格式:"<<dt3.toString(Qt::ISODate);
    qDebug()<<"各國表現方式:"<<dt3.toString(Qt::SystemLocaleDate);
    connect(dateEdit[3],SIGNAL(dateChanged(QDate)),this,SLOT(dateChanged()));
    // 獲得星期,月的長短英文字符串
    QString longWeek = dt3.longDayName(dt3.dayOfWeek());
    QString longMonth = dt3.longMonthName(dt3.month());
    QString strDateLong = QString("%1 %2").arg(longWeek).arg(longMonth);

    QString shortWeek = dt3.longDayName(dt3.dayOfWeek());
    QString shortMonth = dt3.longMonthName(dt3.month());
    QString strDateShort = QString("%1 %2").arg(shortWeek).arg(shortMonth);

    qDebug()<<"短名稱"<<strDateShort;
    qDebug()<<"長名稱"<<strDateLong;
}

MainWindow::~MainWindow()
{

}

void MainWindow::dateChanged()
{
    QDate dt = dateEdit[3]->date();
    // 顯示星期
    switch (dt.dayOfWeek()) {
    case 1:
        qDebug()<<"星期一,"<<"今年第"<<dt.dayOfYear()<<"";
        qDebug()<<"該月總共"<<dt.daysInMonth()<<"天,改年總共"<<dt.daysInYear()<<"";
        break;
    case 2:
        qDebug()<<"星期二,"<<"今年第"<<dt.dayOfYear()<<"";
        qDebug()<<"該月總共"<<dt.daysInMonth()<<"天,改年總共"<<dt.daysInYear()<<"";
        break;
    case 3:
        qDebug()<<"星期三,"<<"今年第"<<dt.dayOfYear()<<"";
        qDebug()<<"該月總共"<<dt.daysInMonth()<<"天,改年總共"<<dt.daysInYear()<<"";
        break;
    case 4:
        qDebug()<<"星期四,"<<"今年第"<<dt.dayOfYear()<<"";
        qDebug()<<"該月總共"<<dt.daysInMonth()<<"天,改年總共"<<dt.daysInYear()<<"";
        break;
    case 5:
        qDebug()<<"星期五,"<<"今年第"<<dt.dayOfYear()<<"";
        qDebug()<<"該月總共"<<dt.daysInMonth()<<"天,改年總共"<<dt.daysInYear()<<"";
        break;
    case 6:
        qDebug()<<"星期六,"<<"今年第"<<dt.dayOfYear()<<"";
        qDebug()<<"該月總共"<<dt.daysInMonth()<<"天,改年總共"<<dt.daysInYear()<<"";
        break;
    case 7:
        qDebug()<<"星期七,"<<"今年第"<<dt.dayOfYear()<<"";
        qDebug()<<"該月總共"<<dt.daysInMonth()<<"天,改年總共"<<dt.daysInYear()<<"";
        break;
    default:
        break;
    }
}
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

相關文章
相關標籤/搜索