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();
}

时间: 2024-11-08 22:07:29

QT5-控件-QDateEdit 和 日期类QDate的相关文章

android内部培训视频_第三节(3)_常用控件(ViewPager、日期时间相关、ListView)

第三节(2):常用控件之ViewPager.日期时间相关.ListView  一.ViewPager 实例:结合PagerAdapter滑动切换图片  二.日期时间相关:AnalogClock\DigitalClock\DatePicker\TimerPicker\DatePickerDialog\TimePickerDialog 三.ListView 实例1:城市选择器 实例2:自定义列表项 百度网盘视频下载地址:http://pan.baidu.com/s/1c0ip6la android内

背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu

原文:背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹出类) ToolTip Popup PopupMenu 示例1.ToolTip 的示例Controls/FlyoutControl/ToolTipDemo.xaml <Page x:Class="Windows10.Controls.FlyoutControl.ToolTipDemo&q

背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout

原文:背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹出类) FlyoutBase Flyout MenuFlyout 示例1.FlyoutBase(基类) 的示例Controls/FlyoutControl/FlyoutBaseDemo.xaml <Page x:Class="Windows10.Controls.FlyoutC

背水一战 Windows 10 (37) - 控件(弹出类): MessageDialog, ContentDialog

原文:背水一战 Windows 10 (37) - 控件(弹出类): MessageDialog, ContentDialog [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹出类) MessageDialog ContentDialog 示例1.MessageDialog 的示例Controls/FlyoutControl/MessageDialogDemo.xaml <Page x:Class="Windows10.Controls.FlyoutCo

原创控件代码共享--日期选择控件

思路:实现日期年月日的选择 1.可以设定年的起止年份 2.排除不正确日期选择的可能 3.使用javascript实现控制 4.使用Text属性方便获取设置日期值 ================================= 代码如下: using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.IO; using

WPF 中如何使用第三方控件 ,可以使用WindowsFormsHost 类

允许在 WPF 页面上承载 Windows Forms控件的元素. 命名空间:   System.Windows.Forms.Integration 程序集:   WindowsFormsIntegration(在 WindowsFormsIntegration.dll 中) 用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2

利用JS实现Web日历控件(包括日期和时间)

1.由于项目需要,需要一个精确到分钟的日历控件,具体如下图所示. 2.具体包括WebCalendar.js和一个schedule.jsp两个文件,源码如下. (1)WebCalendar.js var cal; var isFocus=false; //是否为焦点 var pickMode ={ "second":1, "minute":2, "hour":3, "day":4, "month":5, &q

一个Winform下DataGridView控件外观的自定义类

一.关于起因 最近非常频繁的使用DataGridView控件,VS提供的Winform下DataGridView的默认样式非常难看.如果做美化处理的话,需要调整的地方非常多,且该控件的很多设置属性非常的晦涩,不是很人性化.每次进行设置都煞费脑筋,并且需要设置的DataGridView控件又比较多,如果手工一个一个调整非常麻烦.如果在每个窗体里逐个一行一行的用代码来设置,会造成代码很凌乱.琐碎,因此我对DataGridView格式设置的常用项封装到一个Helper类,通过这个帮助类可以一步到位完成

iOS:触摸控件UITouch、事件类UIEvent

UITouch:触摸控件类   UIEvent:事件类 ??????UITouch的介绍?????? 一.触摸状态类型枚举 typedef NS_ENUM(NSInteger, UITouchPhase) { UITouchPhaseBegan,             // 开始触摸 UITouchPhaseMoved,             // 触摸移动 UITouchPhaseStationary,       // 触摸没有移动 UITouchPhaseEnded,