#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <QDate>
#include <QDateEdit> class MainWindow : public QMainWindow
{
Q_OBJECT public:
MainWindow(QWidget *parent = );
~MainWindow(); QDateEdit* dateEdit[]; public slots:
void dateChanged();
}; #endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QtDebug> MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this->resize(,);
this->centralWidget(); QDate dt1 = QDate(,,);
QDate dt2 = QDate::currentDate(); dateEdit[] = new QDateEdit(dt1.addYears(),this);
dateEdit[]->setGeometry(,,,); dateEdit[] = new QDateEdit(dt1.addMonths(),this);
dateEdit[]->setGeometry(,,,); dateEdit[] = new QDateEdit(dt1.addDays(),this);
dateEdit[]->setGeometry(,,,); dateEdit[] = new QDateEdit(dt2,this);
dateEdit[]->setGeometry(,,,); // 判断日期是否合法1
if(QDate::isValid(,,))
{
qDebug()<<"2016-02-30是合法日期";
}
else
{
qDebug()<<"2016-02-30是非法日期";
}
// 判断日期是否合法2
if(QDate(,,).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[],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[]->date();
// 显示星期
switch (dt.dayOfWeek()) {
case :
qDebug()<<"星期一,"<<"今年第"<<dt.dayOfYear()<<"天";
qDebug()<<"该月总共"<<dt.daysInMonth()<<"天,改年总共"<<dt.daysInYear()<<"天";
break;
case :
qDebug()<<"星期二,"<<"今年第"<<dt.dayOfYear()<<"天";
qDebug()<<"该月总共"<<dt.daysInMonth()<<"天,改年总共"<<dt.daysInYear()<<"天";
break;
case :
qDebug()<<"星期三,"<<"今年第"<<dt.dayOfYear()<<"天";
qDebug()<<"该月总共"<<dt.daysInMonth()<<"天,改年总共"<<dt.daysInYear()<<"天";
break;
case :
qDebug()<<"星期四,"<<"今年第"<<dt.dayOfYear()<<"天";
qDebug()<<"该月总共"<<dt.daysInMonth()<<"天,改年总共"<<dt.daysInYear()<<"天";
break;
case :
qDebug()<<"星期五,"<<"今年第"<<dt.dayOfYear()<<"天";
qDebug()<<"该月总共"<<dt.daysInMonth()<<"天,改年总共"<<dt.daysInYear()<<"天";
break;
case :
qDebug()<<"星期六,"<<"今年第"<<dt.dayOfYear()<<"天";
qDebug()<<"该月总共"<<dt.daysInMonth()<<"天,改年总共"<<dt.daysInYear()<<"天";
break;
case :
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();
}

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

  1. 在MonthCalendar控件中选中日期

    Calendar.MONTH Calendar now=Calendar.getInstance();System.out.print(now.get(Calendar.MONTH));得到的月份少1 ...

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

    [源码下载] 背水一战 Windows 10 (37) - 控件(弹出类): MessageDialog, ContentDialog 作者:webabcd 介绍背水一战 Windows 10 之 控 ...

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

    [源码下载] 背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹 ...

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

    [源码下载] 背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout 作者:webabcd 介绍背水一战 Windows 10 之 ...

  5. QMUI UI库 控件 弹窗 列表 工具类 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. firedac数据集控件的公共祖先类——TFDAdaptedDataSet

    firedac数据集控件的公共祖先类——TFDAdaptedDataSet TFDQuery = class(TFDCustomQuery)TFDCustomQuery = class(TFDRdbm ...

  7. delphi中DateTimePicker控件同时输入日期和时间

    将DateTimePicker的Format属性中加入日期格式设成 'yyyy-MM-dd HH:mm',注意大小写 , 将kind设置为dtkTime即可,可以在每次Form onShow时将Dat ...

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

    允许在 WPF 页面上承载 Windows Forms控件的元素. 命名空间:   System.Windows.Forms.Integration 程序集:   WindowsFormsIntegr ...

  9. 修改Devexpress DateEdit控件默认的日期格式和日历风格

    最近项目中很多地方使用到DevExpress的DateEdit控件,而且设置都是一致(日期格式.选择日期的日历的风格等).每一次都需要设置太痛苦,因此需要寻找一种高效的解决方式. 一. 设置好一个作为 ...

随机推荐

  1. Python Udp Socket

    socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信 python2.6实现,基于AF_INET(网络套接字) 类型S ...

  2. Scala学习笔记--特质trait

    http://outofmemory.cn/scala/scala-trait-introduce-and-example 与Java相似之处 Scala类型系统的基础部分是与Java非常相像的.Sc ...

  3. GDB 的MI接口

    背景介绍: libgdb过时了,目前的GDB调试前端都不用libgdb 目前有两种比较流行:- MI接口,现在应该是MI II接口,是Eclipse CDT所采用的方式- emac输出接口,这个似乎有 ...

  4. Oracle索引状态查询&索引重建

    --检查损坏索引 SELECT status, COUNT(*)   FROM dba_indexes  GROUP BY status UNION SELECT status, COUNT(*)   ...

  5. C++指针的操作和运算(转)

    既然指针是一种数据类型,那么它也应该有对应的操作或运算,正如整数能做加减乘除一样.但是每一种操作或运算都应该对这种数据类型有意义.比如两个实数可以用关系运算得知哪个大哪个小,而两个虚数却不能使用关系运 ...

  6. java反编译工具(XJad)

    java反编译工具(XJad) 2.2 绿色版 http://www.cr173.com/soft/35032.html Demo.class     --->    Demo.java

  7. AndroidStudio常见提示

    Required:请求的是String字符串 .     Found:   et.getText()返回的是text.Editable

  8. CPU使用率统计办法

    我们在搞性能测试的时候,对后台服务器的CPU利用率监控是一个常用的手段.服务器的CPU利用率高,则表明服务器很繁忙.如果前台响应时间越来越大,而后台CPU利用率始终上不去,说明在某个地方有瓶颈了,系统 ...

  9. poj 3176 Cow Bowling(dp基础)

    Description The cows don't use actual bowling balls when they go bowling. They each take a number (i ...

  10. python高级编程:有用的设计模式3

    # -*- coding: utf-8 -*-__author__ = 'Administrator'#python高级编程:有用的设计模式#访问者:有助于将算法从数据结构中分离出来"&qu ...