文档章节

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
博文 362
码字总数 24609
作品 0
佳木斯
私信 提问
LINQ使用的一点心得

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

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

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

KnightsWarrior
2013/09/05
0
0
U-SQL 介绍 —— 大数据处理语言

微软宣布了新的 Azure 数据湖(Azure Data Lake)服务,该服务被用于云分析,包括了一个超大规模信息库;一个在 YARN 上建立的新的的分析服务,该服务允许数据开发者和数据科学家分析全部的数...

oschina
2015/09/30
4.7K
9
电商总结(三)构建数据库的主从架构

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

章为忠
2016/03/03
0
0
JAVA C# 双引擎ACID NoSQL数据库--iBoxDB

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

iBoxDB
2012/07/27
10.1K
6

没有更多内容

加载失败,请刷新页面

加载更多

NEO 节点介绍

全节点(full nodes)是存储 NEO 区块链全部数据的节点,通过 P2P 的方式与区块链网络连接,在区块链网络中,所有的全节点都是平等的,既充当客户端又充当服务器。 NEO 有两个全节点程序: ...

NEO-FANS
3分钟前
0
0
内网穿透大杀器--EarthWorm

0x00 前言 如果感觉本文对你有帮助,请在文章末尾点个赞,谢谢表哥们支持! 当你在内网渗透,并且拿下一台机器的权限时,你是不是觉得已经算是一次完整的渗透了? 不来一次内网漫游,渗透是不...

刀剑如梦
9分钟前
0
0
PiggyMetrics分布式框架

https://github.com/sqshq/PiggyMetrics

丁建祥
10分钟前
0
0
零距离接触阿里云时序时空数据库TSDB

概述 最近,Amazon新推出了完全托管的时间序列数据库Timestream,可见,各大厂商对未来时间序列数据库的重视与日俱增。 阿里云TSDB是阿里巴巴集团数据库事业部研发的一款高性能分布式时序时空...

阿里云云栖社区
19分钟前
0
0
OkHttpClient封装

import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Map; import java.util.TreeMap; import java.util.Map.Entry; import o......

尘叙缘
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部