首页 > 开发 > 综合 > 正文

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

2024-07-21 02:26:51
字体:
来源:转载
供稿:网友

最近折腾什么周期性工作安排,对时间的操作加强了一点,得出在应用软件中时间真是个注意的地方,像客户要求“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 )
它能帮你取出你想要的各种形式的时间差,如相隔多少天,多少小时,多少分钟等,具体格式如下:

日期部分缩写
yearyy, yyyy
quarterqq, q
monthmm, m
dayofyeardy, y
daydd, d
weekwk, ww
hourhh
minutemi, n
secondss, s
millisecondms


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


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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表