文档章节

C#和Sql的时间操作心得(一)

vga
 vga
发布于 2016/08/06 06:47
字数 667
阅读 15
收藏 0

C#和Sql的时间操作心得(一) 最近折腾什么周期性工作安排,对时间的操作加强了一点,得出在应用软件中时间真是个注意的地方,像客户要求“2006-03-16 12:00:00” 或者是“2006年03月16日 12:00:00” 。他们说到很简单,但是落实到我们这里不是很难得活,但是心情上总是有点烦躁,在此,我为天下程序员打抱个不平。嘿嘿,当然,俺也自我安慰一下,言归正传,我把时间操作的心得贴出来,共享之:

一、取某月的最后一天 法一、使用算出该月多少天,年+月+加上多少天即得,举例取今天这个月的最后一天

private void GetLastDateForMonth(DateTime DtStart,out DateTime DtEnd) { int Dtyear,DtMonth;

DtStart = DateTime.Now; Dtyear = DtStart.Year; DtMonth = DtStart.Month;

int MonthCount = DateTime.DaysInMonth(Dtyear,DtMonth); DtEnd = Convert.ToDateTime(Dtyear.ToString()+"-"+DtMonth.ToString()+"-"+MonthCount);

}

法二、取出下月的第一天减去一天便是这个的最后一天

private void GetLastDateForMonth(DateTime DtStart,out DateTime DtEnd) { int Dtyear,DtMonth;

DtStart = DateTime.Now.AddMonths(1); Dtyear = DtStart.Year; DtMonth = DtStart.Month;

DtEnd = Convert.ToDateTime(Dtyear.ToString()+"-"+DtMonth.ToString()+"-"+"1").AddDays(-1);

}

二、时间差的计算 法一、使用TimeSpan ,同时也介绍一下TimeSpan的用法

相关属性和函数

Add:与另一个TimeSpan值相加。 Days:返回用天数计算的TimeSpan值。 Duration:获取TimeSpan的绝对值。 Hours:返回用小时计算的TimeSpan值 Milliseconds:返回用毫秒计算的TimeSpan值。 Minutes:返回用分钟计算的TimeSpan值。 Negate:返回当前实例的相反数。 Seconds:返回用秒计算的TimeSpan值。 Subtract:从中减去另一个TimeSpan值。 Ticks:返回TimeSpan值的tick数。 TotalDays:返回TimeSpan值表示的天数。 TotalHours:返回TimeSpan值表示的小时数。 TotalMilliseconds:返回TimeSpan值表示的毫秒数。 TotalMinutes:返回TimeSpan值表示的分钟数。 TotalSeconds:返回TimeSpan值表示的秒数。

简单示例: DateTime d1 =new DateTime(2004,1,1,15,36,05); DateTime d2 =new DateTime(2004,3,1,20,16,35);

TimeSpan d3 = d2.Subtract(d1);

LbTime.Text = "相差:" +d3.Days.ToString()+"天" +d3.Hours.ToString()+"小时" +d3.Minutes.ToString()+"分钟" +d3.Seconds.ToString()+"秒";

法二、使用Sql中的DATEDIFF函数 使用方法:DATEDIFF ( datepart , startdate , enddate ) 它能帮你取出你想要的各种形式的时间差,如相隔多少天,多少小时,多少分钟等,具体格式如下:

日期部分 缩写 year yy, yyyy quarter qq, q Month mm, m dayofyear dy, y Day dd, d Week wk, ww Hour hh minute mi, n second ss, s millisecond ms

如:datediff(mi,DtOpTime,DtEnd) 便能取出他们之间时间差的分钟总数,已经帮你换算好了,对于要求规定单位,时、分、秒特别有用

这个先写到这,待续,都写完了,后面就没活了,哈哈

本文转载自:http://www.cnblogs.com/skylaugh/archive/2006/03/17/352387.html

共有 人打赏支持
vga

vga

粉丝 21
博文 358
码字总数 24097
作品 0
佳木斯
LINQ使用的一点心得

其实早在好几年前就知道LINQ这个东西,但我学习新技术从来都不会盲目跟从,因为这样只会浪费宝贵的时间和精力,还有可能给公司业务带来损失。有些新技术还没发展就被淘汰了,因此我只学习那些...

晨曦之光
2012/04/26
235
0
我与英语技术书籍

前言(Introduction) 前些天写了一篇《程序猿也爱学英语(上),有图有真相》,大概介绍了我学英语的一些基本资料以及心得体会,本来接下来该发中篇,但《程序猿也爱学英语(中),有图有真相...

KnightsWarrior
2013/09/05
0
0
电商总结(三)构建数据库的主从架构

  这段时间,一直在总结电商系统的相关基础技术和架构,写了很多东西。但是还是发现一个很重要,很基础的方面没有讲到,那就是数据库读写分离的主从架构。可能发展到大型成熟的公司之后,主...

章为忠
2016/03/03
0
0
Namespace(命名空间)的使用

作者:飞刀 关于Namespace(命名空间)的使用常用<% @ Import Namespace="System.Data" %>,这是在引用M$为我们提供的Namespace,这和ASP不同的,我们贏SP.net必须先引用与我们操作有关的Namespa...

晨曦之光
2012/03/09
1K
0
JAVA C# 双引擎ACID NoSQL数据库--iBoxDB

iBoxDB是一个具有双引擎(Java 和 C#)的高性能NoSQL数据库,支持直接在虚拟机上运行而无需获取机器码执行权限,内置了非结构化数据存取,ORM,缓存等模块,不依赖任何第三方功能组件,实现了一...

iBoxDB
2012/07/27
10.1K
6

没有更多内容

加载失败,请刷新页面

加载更多

Web系统大规模并发:电商秒杀与抢购

一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常...

xtof
今天
1
0
代码质量管理平台-sonarqube

在工作中,往往开发的时候会不怎么注重代码质量的人很多,存在着很多的漏洞和隐患等问题,sonarqube可以进行代码质量的审核,而且十分的残酷。。。。。接下来我们说下怎么安装 进入官网下载:...

落叶清风
今天
6
0
在Ubuntu安装和配置Sphinx

Ubuntu系统默认是配置有sphinx的,先检查一下,别多此一举。。。。。 在开始本指南之前,您需要: 一个Ubuntu 16.04服务器。 sudo的一个非root用户,您可以通过以下设置本教程 。 安装在服务...

阿锋zxf
今天
1
0
Qt编写输入法V2018超级终结版

对于qt嵌入式linux开发人员来说,输入法一直是个鸡肋问题,要么不支持实体键盘同步,要么不能汉字输入,要么不支持网页输入等,这几年通过陆续接触大量的各种输入法应用场景客户,得到真实需...

飞扬青云
今天
2
0
TypeScript基础入门之高级类型的多态的 this类型

转发 TypeScript基础入门之高级类型的多态的 this类型 高级类型 多态的this类型 多态的this类型表示的是某个包含类或接口的子类型。 这被称做F-bounded多态性。 它能很容易的表现连贯接口间的...

durban
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部