当前位置:文档之家› R语言与格式、日期格式、格式转化

R语言与格式、日期格式、格式转化

R语言与格式、日期格式、格式转化
R语言与格式、日期格式、格式转化

标签: R 日期格式日期差代码时间处理

分类:目录(?)[+]

R语言与格式、日期格式、格式转化

2016-02-16 22:12 1624人阅读 评论(0) 收藏 举报

版权声明:本文为博主原创文章,未经博主允许不得转载。

R语言的基础包中提供了两种类型的时间数据,一类是Date日期数据,它不包括时间和时区信息,另一类是

POSIXct/POSIXlt类型数据,其中包括了日期、时间和时区信息。基本总结如下:

日期data,存储的是天;

时间POSIXct 存储的是秒,POSIXlt 打散,年月日不同;

日期-时间=不可运算。

一般来讲,R语言中建立时序数据是通过字符型转化而来,但由于时序数据形式多样,而且R中存贮格式也是五花八门,例如Date/ts/xts/zoo/tis/fts等等。lubridate包,timeDate包,都有用。

常见的格式:

as.numeric 转化为数值型

as.logic 转化为逻辑型

https://www.doczj.com/doc/2c12620688.html,plex 转化为复数型

as.character 转化为字符型

as.array 转化为数组

as.data.frame 转化为数据框

在data.frame中,是可以实现数据集重命名的,比如data.frame(x=iris,y=cars),

也可以实现横向、纵向重命名,data.frame(x=iris,y=cars,https://www.doczj.com/doc/2c12620688.html,s=iris)

——————————————————————————————————————————

时间的标准格式

mydate = as.POSIXlt(’2005-4-19 7:01:00’)names(mydate)

默认情况下,日期之前是以/或者-进行分隔,而时间则以:进行分隔;

输入的标准格式为:日期 时间(日期与时间中间有空隔隔开)

R的数据读入与基础(1)(20)

[plain] view plain copy print ?

01. d<‐as.character(z) #将数值向量z<‐(0:9)转化为字符向量c("0", "1", "2", ..., "9")。

02. as.integer(d) #将d 转化为数值向量

03. e <‐ numeric() #产生一个numeric 型的空向量e

04. a=data.frame(a) #变成R 的数据框

05. factor() #变成因子 可以用levels()来看因子个数

时间的标准格式为:时:分 或者 时:分:秒;

如果输入的格式不是标准格式,则同样需要使用strptime函数,利用format来进行指定。

——————————————————————————————————————————

一、日期型数据——data

1、as.Data函数

在R中自带的日期形式为:as.Date();以数值形式存储;

对于规则的格式,则不需要用format指定格式;如果输入的格式不规则,可以通过format指定的格式读入;其中以1970-01-01定义为第0天,之后的年份会以距离这天来计算。

代码解读:unclass可以将日期变成以天来计数,比如1970-02-01输出的31,就代表着距离1970-01-01有31天。

as.data中的参数格式:年-月-日或者年/月/日;如果不是以上二种格式,则会提供错误——错误于charTo按照Date(x) : 字符串的格式不够标准明确;

例如这样的数据格式,就常常报错。

19:15.

显示为:2011/1/1 19:15

2、%d%y%m-基本格式

格式

意义%d

月份中当的天数%m

月份,以数字形式表示%b

月份,缩写%B

月份,完整的月份名,指英文%y 年份,以二位数字表示

[html] view plain copy print ?

01.

> x <‐as.Date ("1970‐01‐01") 02.

> unclass(x) 03.

[1] 0 04.

> 05.

> unclass(as.Date("1970‐02‐01")) #19700201代表第31天 06. [1] 31

[plain] view plain copy print ?

01.

as.Date('23‐2013‐1',format='%d‐%Y‐%m') 02.

#其中这个%d%Y 可以节选其中一个 03. #%Y%y 大写代表年份四位数,小写代表年份二位数,要注意

%Y 年份,以四位数字表示

#其它日期相关函数

weekdays()取日期对象所处的周几;

months()取日期对象的月份;

quarters()取日期对象的季度。

————————————————————————————————————————

二、时间型——POSIXct与POSIXlt

POSIXct 是以1970年1月1号开始的以秒进行存储,如果是负数,则是1970-01-01年以前;正数则是1970年以后。POSIXlt 是以列表的形式存储:年、月、日、时、分、秒,作用是打散时间;

1、POSIXlt 格式

主要特点:作用是打散时间,把时间分成年、月、日、时、分、秒,并进行存储。

可以作为时间筛选的一种。

代码解读:unclass将时间打散。

[html] view plain copy print ?

01. > today <‐Sys.time ()

02. > unclass(as.POSIXlt(today))

03. $sec

04. [1] 53.27151

05.

06. $min

07. [1] 38

08.

09. $hour

10. [1] 20

11.

12. $mday

13. [1] 6

14.

15. $mon

16. [1] 5

17.

18. $year

19. [1] 116

20.

21. $wday

22. [1] 1

23.

24. $yday

25. [1] 157

26.

27. $isdst

28. [1] 0

29.

30. $zone

31. [1] "CST"

32.

33. $gmtoff

34. [1] 28800

35.

36. attr(,"tzone")

37. [1] "" "CST" "CDT"

2、POSIXct 格式

主要特点:以秒进行存储。

解读:比如今天,unclass之后,代表今天2016-06-06距离1970-01-01为1465216942秒。

#GMT代表时区,德意志时间,CST也代表时区

————————————————————————————————————————

三、时间运算

1、基本运算函数

Sys.Date() #字符串类型

typeof(Sys.Date()) #系统日期类型

2、直接加减

相同的格式才能相互减,不能加。二进列的+法对"Date"、"POSIXt"对象不适用。

相互减之后,一般结果输出的天数。

3、difftime函数——计算时差

不同格式的时间都可以进行运算。并且可以实现的是计算两个时间间隔:秒、分钟、小时、天、星期。

但是不能计算年、月、季度的时间差。

[html] view plain copy print ?

01. > today <‐Sys.time ()

02. > today

03. [1] "2016‐06‐06 20:42:22 CST"

04. > unclass(as.POSIXct(today))

05. [1] 1465216942

[html] view plain copy print ?

01. > as.Date("2011‐07‐01") ‐ as.Date(today)

02. Time difference of ‐1802 days

03. > as.POSIXct(today)‐as.POSIXct(as.Date("2012‐10‐25 01:00:00"))

04. Time difference of 1320.529 days

05. > as.POSIXlt(today)‐as.POSIXlt(as.Date("2012‐10‐25 01:00:00"))

06. Time difference of 1320.529 days

[html] view plain copy print ?

01. gtd <‐ as.Date("2011‐07‐01")

02. difftime(as.POSIXct(today), gtd, units ="hours") #只能计算日期差,还可以是“secs”, “mins”, “hours”, “days”

4、format函数——提取关键信息

format函数可以将时间格式,调节成指定时间样式。format(today,format="%Y")其中的format可以自由调节,获取你想要的时间信息。并且format函数可以识别as.Data型以及POSIXct与POSIXlt型,将其日期进行提取与之后要讨论的split类型。

但是format出来的时间不能直接做减法,会出现错误: non-numeric argument to binary operator

5、strptime函数

该函数是将字符型时间转化为 "POSIXlt" 和"POSIXct"两类。跟format比较相似。

strptime之后的时间是可以直接做减法,因为直接是"POSIXlt" 和"POSIXct"格式了。

————————————————————————————————————————

四、遇见的问题

1、常常报错。

错误于charTo按照Date(x) : 字符串的格式不够标准明确。这个错误经常出现,我本来的数据格式是

19:15.

后来换成“2011/1/1”这样的就不会报错了,需要数据库自动改变。

[html] view plain copy print ?

01. > today <‐Sys.time ()

02. > format(today,format ="%B‐%d‐%Y")

03. [1] "六月‐06‐2016"

[html] view plain copy print ?

01. > today <‐Sys.time ()

02. > format(as.Date(today),format ="%Y")

03. [1] "2016"

04. > format(as.POSIXlt(today),format ="%Y")

05. [1] "2016"

06. > format(as.POSIXct(today),format ="%Y")

07. [1] "2016"

[html] view plain copy print ?

01. > strptime("2006‐01‐08 10:07:52", "%Y‐%m‐%d")‐strptime("2006‐01‐15 10:07:52", "%Y‐%m‐%d")

02. Time difference of ‐7 days

03. > class(strptime("2006‐01‐08 10:07:52", "%Y‐%m‐%d"))

04. [1] "POSIXlt" "POSIXt"

2、excel另存为csv时发生的错误。

一位网友说:我以前是在excel里另存为csv格式,百度上说CSV档如果以EXCEL开启,由于计算机档案数据转换的原因,会将其CRC之数值改做科学记号方式储存,而造成档案中的 CRC值发生错误。

——————————————————————————————————————————————————

应用1——如何通过生日计算年龄

1、format函数

format只能一个一个操作,可以先写成函数,然后计算得出年份,之后用如今的年份相减得到年龄。

2、字符型——strsplit

先转化为字符型,然后进行分割。

注意,其中strsplit中的"-",根据具体时间格式情况来定义。

[plain] view plain copy print ?

01.

#几种错误汇总 02.

dtV<‐data.frame(as.POSIXct(a$b,format="%d.%m.%Y")) #错,读出来都是NA 03.

as.Date(a$b, "%Y 年%m 月%d 日") #错,读不出来 04.

as.POSIXct(strptime(a$b, "%Y‐%m‐%d")) #读不出来 05.

06.

#转化成xts 格式也读不出来 07.

install.packages("xts") 08.

library(xts) 09.

as.xts(read.zoo("time.csv",header=T)) 10.

a <‐ as.xts(a, descr='my new xts object') 11.

as.xts(read.zoo("a.csv",header=T)) 12.

#错 13.

14.

#转化成数值型也不对 15. c=as.numeric(sales[,2])

[html] view plain copy print ?

01.

timeformat <‐function (x){ 02.

format(as.POSIXct(x),format ="%Y") 03.

} 04. sapply(as.Date(data$birthdate),timeformat)

[html] view plain copy print ?

01. data.frame(sapply(as.character(data$birthdate),function(x){strsplit(x,"‐")[[1]][1]}))

——————————————————————————————————————————————————

应用2——日期分组

一种按照日期范围——例如按照周、月、季度或者年——对其进行分组的超简便处理方式:R语言的cut()函数。

假设vector中存在以下示例数据:

来源于R语言︱数据集分组、筛选

———————————————————————————————

可参考博客:

1、https://www.doczj.com/doc/2c12620688.html,/speeding/p/4060500.html

部分内容修改,来自CDA DSC课程,其中将日期格式进行区别。

———————————————————————————————

应用三——生成按天的时间序列并进行回归

如果是生成简单的年度,月度数据,ts函数可以满足,但是如果生成的是每天。因为有闰年缘故,所以zoo包可以很好地解决这个问题。

还有笔者在做一个简单的时间序列回归时候,疑惑:

做关于时间序列的ols最小二乘法回归方程,按年来好说,但是如果是按天,如果进行计算呢?

1、把天变成一排规律递增的数字来代替;

2、ts函数变化之后,也是变成一个递增的数字。

以上两种,做的结果都一样,所以没有什么太大的区别。

关于ts函数by day每一天的时间序列生成,该如何呢?

生成一个按天的时间序列。

[html] view plain copy print ?

01. vDates <‐ as.Date(c("2013‐06‐01", "2013‐07‐08", "2013‐09‐01", "2013‐09‐15")) #as.Data()函数的作用非常重要;如果没有它,R 语言会认为以上内

容仅仅是数字串而非日期对象

02. [1] "2013‐06‐01" "2013‐07‐08" "2013‐09‐01" "2013‐09‐15"

03. vDates.bymonth <‐ cut(vDates, breaks = "month")

04. [1] 2013‐06‐01 2013‐07‐01 2013‐09‐01 2013‐09‐01

05. Levels: 2013‐06‐01 2013‐07‐01 2013‐08‐01 2013‐09‐01

06. Dates <‐ data.frame(vDates, vDates.bymonth)

[html] view plain copy print ?

01. n =30

02. t <‐ts (1:n,frequency =1,start =as .Date("2010‐01‐09"))

Oracle的to_date函数

Oracle的to_date函数 日期格式参数含义说明 D一周中的星期几 DAY天的名字,使用空格填充到9个字符 DD月中的第几天 DDD年中的第几天 DY天的简写名 IW ISO标准的年中的第几周 IYYYISO标准的四位年份 YY四位年份 YYY,YY,Y年份的最后三位,两位,一位 HH小时,按12小时计 HH24小时,按24小时计 MI分 SS秒 MM月 Mon月份的简写注: 在不同的语言下显示出来的数据不同,在中文下显示为5月,在英文下显示为MAY Month月份的全名 W该月的第几个星期

WW年中的第几个星期 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate -interval ’7’ MINUTE from dual 当前时间减去7小时的时间 select sysdate -interval ’7’ hour from dual 当前时间减去7天的时间 select sysdate - interval ’7’ day from dual 当前时间减去7月的时间 select sysdate,sysdate -interval ’7’ month from dual 当前时间减去7年的时间 select sysdate,sysdate -interval ’7’ year from dual 时间间隔乘以一个数字 select sysdate,sysdate -8 *interval ’2’ hour from dual 2.日期到字符操作 select sysdate,to_char(sysdate,’y y-mm-dd hh24:mi: ss’) from dual select sysdate,to_char(sysdate,’yy-mm-dd hh: mi: ss’) from dual select sysdate,to_char(sysdate,’yy-ddd hh:

15-Excel中日期格式转换问题

Excel中日期格式转换问题 1.数字格式转年月日格式 工作表中出生年月日格式格式是如:198707141987090620090902如果想改成1987-7-14或改成1987年7月14日。 1、就用此函数插入一列如B列,B1=(LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,2));其它单元格可以用此公式自动填充,然后把此单元格设置成日期1987-7-14; 2、插入一列如B列,B1=(LEFT(A1,4)&"年"&MID(A1,5,2)&"月"&RIGHT(A1,2)&"日");其它单元格可以用此公式自动填充,然后把此单元格设置成日期1987年7月14日。 把这种格式2009.9.2转换成2009-09-02这样的格式:假如原始数据在A列从A1开始,则在B1输入公式=TEXT(SUBSTITUTE(A1,".","-"),"yyyy-mm-dd"),然后下拉复制公式即可。 2.在Excel中将非日期格式数据转换为日期格式 如果Excel表格中有大量的类似“19841006”、“19841029”非日期格式的数据要转换为日期格式,如“1984-10-6”,可以用分列的方法: 1).选择需要转换单元格或区域,单击菜单“数据→分列”,弹出“文本分列向导-3之步骤1”对话框。如果是Excel2007,则在功能区中选择“数据”选项卡,在“数据工具”组中,单击“分列”按钮。

2).单击两次“下一步”,在“文本分列向导-3之步骤3”中,在“列数据格式”中选择“日期”。还可以根据需要,在其后的下拉列表中选择一种日期格式。本例为默认的“YMD”格式。 3).单击“完成”按钮,Excel会在原单元格或区域中将数值格式的“19841006”和文本格式的“1984.10.6”转换为日期格式“1984-10-6”。 另外,对于“1984.10.6”文本格式的数据,还可以将“.”替换为“-”,也可以转换为日期格式。 3.将日期格式转换为数字格式 在日期后插入一列取函数=text(a1,"yyyymmddhhmm")yyyy表示年mm表示月dd表示日hh表示时mm表示分a1表示日期位置(第一行第一列),然后向下拖曳填充即可改变其他各行日期 4.Excel文本日期转换为日期格式 什么是序列号? Excel可将日期存储为可用于计算的序列号。默认情况下,1900年1月1日的序列号为1,2008年1月1日的序列号为39,448,这是因为它距1900年1月1日有39,448天。 2、若要将转换公式复制到相邻单元格的区域中,请选择在其中键入公式的单元格,然后拖动填充柄,使之覆盖大小与包含文本日期的单元格区域匹配的空单元格区域。 拖动填充柄之后,应有序列号与包含文本日期的单元格区域相对应的单元格区域。

Sql日期时间格式转换

Sql日期时间格式转换 sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 Select CONVERT(varchar(100), GETDATE(), 12): 060516 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250 Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006

DATE 函数

技术细节 DATE函数返回表示特定的日期序列号。 语法︰DATE(year,month,day) DATE 函数语法具有下列参数: ?年份必需。年参数的值可以包括一到四位数字。Excel 将解释年参数根据您的计算机使用的日期系统。默认情况下,Microsoft Excel for Windows 使用1900年日期系统,这意味着1900 年 1 月 1 日的第一个日期。 提示:使用四位数年份参数以防止不需要的结果。例如,"07"意味着"1907"或"2007"。四位数年份防止混淆。 o如果year介于0(零)到1899 之间(包含这两个值),则Excel 会将该值与1900 相加来计算年份。例如,DATE(108,1,2)返回2008 年1 月2 日(1900+108)。 o如果year介于1900 到9999 之间(包含这两个值),则Excel 将使用该数值作为年份。例如,DATE(2008,1,2)将返回2008 年1 月 2 日。 o如果year小于0 或大于等于10000,则Excel 返回错误值#NUM!。 ?月必需。一个正整数或负整数,表示一年中从1 月至12 月(一月到十二月)的各个月。o如果month大于12,则month会将该月份数与指定年中的第一个月相加。例如,DATE(2008,14,2)返回代表2009 年 2 月2 日的序列数。 o如果month小于1,month则从指定年份的一月份开始递减该月份数,然后再加上1 个月。例如,DATE(2008,-3,2)返回代表2007 年9 月2 日的序列号。 ?日必需。一个正整数或负整数,表示一月中从1 日到31 日的各天。 o如果day大于月中指定的天数,则day会将天数与该月中的第一天相加。例如,DATE(2008,1,35)返回代表2008 年 2 月4 日的序列数。 o如果day小于1,则day从指定月份的第一天开始递减该天数,然后再加上1 天。例如,DATE(2008,1,-15)返回代表2007 年12 月16 日的序列号。 注意: Excel 将日期存储为序列号,以便可以在计算中使用它们。1900 年 1 月 1 日是序列号1,和2008 年1 月 1 日是序列号39448,因为它是39,447 1900 年1 月1 日的天数。 您将需要更改的数字格式(单元格格式)以显示正确的日期。

日期格式转换

function strlen(str) { var len = 0; for (var i = 0; i < str.length; i++) { var c = str.charCodeAt(i); //单字节加1 if ((c >= 0x1 && c <= 0x007e) (0xff60 <= c && c <= 0xff9f)) { len++; } else { len += 2; } } return len; } function Todate(num) { //Fri Oct 31 18:00:00 UTC+0800 2008 Wed Jul 15 2015 00:00:00 GMT+0800 Mon Dec 26 00:00:00 UTC+0800 2008 num = num + ""; var date = ""; var month = new Array(); month["Jan"] = 1; month["Feb"] = 2; month["Mar"] = 3; month["Apr"] = 4; month["May"] = 5; month["Jun"] = 6; month["Jul"] = 7; month["Aug"] = 8; month["Sep"] = 9; month["Oct"] = 10; month["Nov"] = 11; month["Dec"] = 12; var week = new Array(); week["Mon"] = "一"; week["Tue"] = "二"; week["Wed"] = "三"; week["Thu"] = "四"; week["Fri"] = "五"; week["Sat"] = "六"; week["Sun"] = "日"; str = num.split(" "); date = str[5] + "-"; //var count = strlen(month[str[1]]); var yue=month[str[1]]; var ri= str[2]; // alert(ri); // alert(countt); // var m = month[str[1]]; var m =""; if (yue == 1 ||yue==2 || yue==3 || yue==4 || yue==5 || yue==6 || yue==7 || yue==8 || yue==9) { m ="0"+month[str[1]]; }else{ m = month[str[1]];}

Excel中如何将日期格式进行转换

在EXCEL中如何将日期格式转换 如何将格式转换成1900-01-01的格式? 如果日期所在单元格在A列,并从A1开始。 1、插入一辅助列B列, 2、在B1输入:=MID(A1,1,4)&-MID(A1,5,2)&-MID(A1,7,2)回车, 3、向下填充该公式。 4、选中B列→复制→粘贴→选择性粘贴→数值→确定 5、删除A列 在EXCEL中如何利用身份证号码提取出生时间 假设身份证号在A1,时间格式为1900-1-1 =IF(LEN(A1)=15,"19"&MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-"&MID(A1 ,11,2)&"-"&MID(A1,13,2)) 在EXCEL中如何利用身份证号码提取性别 =IF(LEN(A1)=15,IF(MOD(MID(A1,15,1),2)=1,"男","女") , IF(MOD(MID(A1,17,1),2)=1,"男","女") ) 在EXCEL中如何利用身份证号码计算周岁 假设身份证号在C1,时间格式为1900-1-1,出生时间为X 答案1: =DATEDIF(IF(LEN(A1)=15,"19"&MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-" &MID(A1,11,2)&"-"&MID(A1,13,2)),TODAY(),”y”) 简化之:=DATEDIF(X,TODAY(),”y”) 答案2: =TEXT(TODAY()-IF(LEN(C1)=15,"19"&MID(C1,7,2)&"-"&MID(C1,9,2)&"-"&MID(C1,11,2),MID(C1,7,4) &"-"&MID(C1,11,2)&"-"&MID(C1,13,2 )),"yy") 简化之:=TEXT(TODAY()-X,”yy”) 在EXCEL中如何利用身份证号码计算周岁 假设身份证号在C1: =IF(C1="","",IF(IF(LEN(C1)=15,"19"&MID(C1,7,2)&"-"&MID(C1,9,2)&"-"&MID(C1,11,2),MID(C1,7,4) &"-"&MID(C1,11,2)&"-"&MID(C1,13,2))>"2009-12-31","",TEXT(TODAY()-IF(LEN(C1)=15,"19"&MID( C1,7,2)&"-"&MID(C1,9,2)&"-"&MID(C1,11,2),MID(C1,7,4)&"-"&MID(C1,11,2)&"-"&MID(C1,13,2))," yy")))

如何修改邮件合并数字、日期格式

4、 Office 2003 与 Office 2007 完美共存 在现在的办公软件中,Microsoft 出品的Office 集成办公软件占据了绝大多数的市场份额, 从最初的Office 2000,到后面的Office 2003 以至近两年刚发行的Office 2007,它直观的界面、强大的文字处理功能和出色图表计算,让我们大大简化了日常办公的烦琐。可在实际的工作中,数据交换和传输已经成了必不可少的工作单元,当一份文件传到你的电脑上,如 何用正确的软件版本打开,有以下几种使用方法,供参考。 1 、安装双版本Office软件 有一部分人,安装Office 2007只是为了尝鲜,实际工作中还是使用Office2003 。但在默认 情况下,安装Office 2007时,安装程序就会自动将老版本的Office程序卸载。没关系,我 们只需稍作设置,旧的不去,新的照来置,就可以让Office 2007和Office2003共存在一个 系统中。 安装Office2007 时,选择“自定义”安装方式,安装程序会自动扫描到系统中已经安装的 Office 程序,并提供 3 种升级安装方式。这里选择“保留所有早期版本”,安装完成后,我们 可以在程序菜单中同时看到Office 2003和Office 2007了。 2 、Office 2003和Office 2007打开文档优先级设定 当系统同时安装office 2003和office 2007两个版本的office办公软件的时候,双击打开一 个office 文档( Word/Excel/Powerpoint ),默认使用应是按照最后安装为优先的规则,而在 工作和实际应用中按照个人喜好来使用,怎样改变默认方式来打开呢? 开始→运行→输入excel2003的安装路径,例如(含开始的引号): "C:\Program Files\Microsoft Office\Office11\excel.exe" /regserver 其它的如法炮制,OK !这样,双击任意一个Office 文档则默认用Office 2003打开,同时Office 2007 也可从开始→程序中打开使用,两全其美。 然后在文件类型里找到xls,选高级,新建操作“使用Microsoft Office 2007打开”,路径是07的 excel 的路径,其他的如法炮制,这样右击图标就有用07 打开的选项了。 但选用07 打开后,如果是word文档,又会弹出安装对话框,怎么办呢? 其实很简单,在文件夹选项的查看里,把“使用简单文件共享”前的勾去掉,找到C:\Program Files\Common Files\Microsoft Shared\OFFICE12\Office Setup Controller\setup.exe ,右击选属

nextdate函数

#include int check(int y,int m,int d) { if (d<1||d>31) { return 0; } else if (m<1||m>12) { return 0; } else if (y<1900||y>2100) { return 0; } return 1; } int a(int y) { return(y%4||y%100&&!(y%400)); } //30天 int b(int m ) { return (m==4||m==6||m==9||m==11); } //31天 int c(int m) { return (m==1||m==3||m==5||m==7||m==8||m==10||m==12); } int nextdate() { int year,month,day; printf("Year="); scanf("%d",&year);

printf("Month="); scanf("%d",&month); printf("Day="); scanf("%d",&day); if (check(year,month,day)) { if ((day==28&&month==2&&!a(year))||(day==29&&month==2&&a(year))) { day=1; month=3; } else if (day==30&&b(month)||day==31&&c(month)) { day=1; month++; } else day++; if (month>12) { month=1; ++year; } printf("Next date:%d-%d-%d\n",year,month,day); } else printf("无T效?ì输o?入¨?日¨?期¨2\n"); return 0; } void main() { int i=1; while(i) {printf("开a始o?计?算?:\n"); if(i==1) { nextdate(); } }

日期格式转换

2011-04-22 15:10 Excel中日期格式转换问题 Excel中日期格式转换问题 1.数字格式转年月日格式 工作表中出生年月日格式格式是如:19870714 19870906 20090902如果想改成1987-7-14或改成1987年7月14日。 1、就用此函数插入一列如B列, B1=(LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,2)); 其它单元格可以用此公式自动填充,然后把此单元格设置成日期1987-7-14 ; 2、插入一列如B列,B1=(LEFT(A1,4)&"年"&MID(A1,5,2)&"月"&RIGHT(A1,2)&"日"); 其它单元格可以用此公式自动填充,然后把此单元格设置成日期1987年7月14 日。 把这种格式2009.9.2转换成2009-09-02这样的格式:假如原始数据在A 列从A1开始,则在B1输入公式=TEXT(SUBSTITUTE(A1,".","-"),"yyyy-mm-dd"),然后下拉复制公式即可。 2.在Excel中将非日期格式数据转换为日期格式 如果Excel表格中有大量的类似“19841006”、“19841029”非日期格式的数据要转换为日期格式,如“1984-10-6”,可以用分列的方法: 1).选择需要转换单元格或区域,单击菜单“数据→分列”,弹出“文本分列向导- 3之步骤1”对话框。如果是Excel 2007,则在功能区中选择“数据”选项卡,在“数据工具”组中,单击“分列”按钮。

Excel中 的日期格式转换问题

Excel中日期格式转换问题 工作表中出生年月格式格式是如:19870705 19861106 19881109如果想改成1987-7-5或改成1987年7月7日。1、就用此函数插入一列如B列,B1=(LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,2))+0 其它单元格可以用此公式自动填充。然后把此单元格设置成日期2001-3-14 ;2、插入一列如B列 B1=(LEFT(A1,4)&"年"&MID(A1,5,2)&"月"&RIGHT(A1,2)&"日")+0 其它单元格可以用此公式自动填充。然后把此单元格设置成日期2001年3月14 日。 把这种格式2009.2.22转换成2009-02这样的格式:假如原始数据在A列从A1开始,则在B1输入公式=TEXT(SUBSTITUTE(A1,".","-"),"yyyy-mm"),然后下拉复制公式即可。 在Excel中将非日期格式数据转换为日期格式 如果Excel表格中有大量的类似“20090510”、“2009.5.10”非日期格式的数据要转换为日期格式,如“2009-5-10”,可以用分列的方法: 1.选择需要转换单元格或区域,单击菜单“数据→分列”,弹出“文本分列向导- 3之步骤1”对话框。如果是Excel 2007,则在功能区中选择“数据”选项卡,在“数据工具”组中,单击“分列”按钮。 2.单击两次“下一步”,在“文本分列向导- 3之步骤3”中,在“列数据格式”中选择“日期”。还可以根据需要,在其后的下拉列表中选择一种日期格式。本例为默认的“YMD”格式。 3.单击“完成”按钮,Excel会在原单元格或区域中将数值格式的“20090510”和文本格式的 “2009.5.10”转换为日期格式“2009-5-10”。 另外,对于“2009.5.10”文本格式的数据,还可以将“.”替换为“-”,也可以转换为日期格式。 在EXCEL中如何利用身份证号码计算出生年月年龄及性别 1、身份证号码简介(18位): 1~6位为地区代码;7~10位为出生年份;11~12位为出生月份;13~14位为出生日期;15~17位为顺序号,并能够判断性别,奇数为男,偶数为男;第18位为校验码。 2、确定“出生日期”: 18位身份证号码中的生日是从第7位开始至第14位结束。提取出来后为了计算“年龄”应该将“年”“月”“日”数据中添加一个“/”或“-”分隔符。 ①正确输入了身份证号码。(假设在D2单元格中) ②将光标定位在“出生日期”单元格(E2)中,然后在单元格中输入函数公式 “=MID(D2,7,4)&"-"&MID(D2,11,2)&"-"&MID(D2,13,2)”即可计算出“出生日期”。

PHP中的Date()函数详细讲解

PHP中的Date()函数详细讲解 1,年-月-日echo date('Y-m-j');2007-02-6 echo date('y-n-j');07-2-6 大写Y表示年四位数字,而小写y表示年的两位数字;小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。 echo date('Y-M-j');2007-Feb-6 echo date('Y-m-d');2007-02-06 大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。 echo date('Y-M-j');2007-Feb-6 echo date('Y-F-jS');2007-February-6th 大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)大写S 表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。 小结:表示年可以用大写的Y和小写y;表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);表示日可以用小写d和小写j,大写S表示日期的后缀。 2,时:分:秒 默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。 echo date('g:i:s a');5:56:57 am echo date('h:i:s A');05:56:57 AM 小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。 echo date('G:i:s');14:02:26 大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数 小结:字母g表示小时不带前导,字母h表示小时带前导;小写g、h表示12小时制,大写G、H表示24小时制。 3,闰年、星期、天 echo date('L');今年是否闰年:0 echo date('l');今天是:Tuesday echo date('D');今天是:Tue 大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;小写l表示当天是星期几的英文全写(Tuesday);而使用大写D表示星期几的3个字符缩写(Tue)。 echo date('w');今天星期:2 echo date('W');本周是全年中的第06 周 小写w表示星期几,数字形式表示大写W表示一年中的星期数 echo date('t');本月是28 天 echo date('z');今天是今年的第36 天 小写t表示当前月份又多少天小写z表示今天是本年中第几天 4,其他 echo date('T');UTC大写T表示服务器的时间区域设置

sql时间格式转换大全

Sqlserver中经常要操作一些时间类型的字段转换,我又不太记得住,所以搜集了以下的一些SqlserverConvert DateTime相关的资料发表在自己的小站里,方便自己以后要用的时候寻找,望对大家也有帮助. 将sqlserver中table表的[datetime]字段值‘2007-11-07 16:41:35.033’ 改为 ‘2007-11-07 00:00:00‘去除了时分秒.[datetime]字段要为datetime类型的哦.UPDATE table SET [datetime]= Convert(char(11),[datetime],120) 获取当前日期利用convert来转换成我们需要的datetime格式. select CONVERT(varchar(12) , getdate(), 112 ) 20040912 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 102 ) 2004.09.12 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 101 ) 09/12/2004 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 103 ) 12/09/2004 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 104 ) 12.09.2004 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 105 ) 12-09-2004 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 106 ) 12 09 2004 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 107 ) 09 12, 2004 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 108 ) 11:06:08 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 109 ) 09 12 2004 1 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 110 ) 09-12-2004 ------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 113 ) 12 09 2004 1

如何在EXCEl中把数字变成日期格式

如何在EXCEl中把数字变成日期格式 你这样,例如这个20051125在A1单元格,你在B1输入如下公式:=DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2)) 然后把B1设成日期型就好了, 如果必须在A1显示这个2002年11月25日,那你就选择B1->复制->选择A1->按右键->选择性粘贴->选数值->然后确定,A1设定成日期格式就好了, 注意:必须保证你输入的数字为8为,也就是月份和日期都是两位,2005年1月1日,你要写成20050101。 解释: EXCEL的日期是从1900-1-1开始计算的,其实日期就是一个从1900-1-1开始的一个天数,比如你在一个单元格输入365,然后设定为日期型,所出现的日期就是1900-12-30,如果是364,那设定成日期型后就是1900-12-29. 如果你输入2008-12-2,然后设定为常规属性,则出现的是39784,这代表的是从1900-1-1日起后面的地39784天是2008-12-30日,也就是我先在答题的今天,明白了吧。显然你输入20051125这个数值是不能直接设定为日期行的,单元格会出现无数个#############2005年11月25日对应的天数的数字是38681

DATE()这个函数可以把数字转换成对应的年、月、日上的数字 假设原始数据在A列,替换结果在B列 Sub test() For r = 2 To [A65536].End(xlUp).Row t = Replace(Cells(r, 1), ".", "-") If Cells(r, 1).NumberFormatLocal <> "G/通用格式" Then t = t & "0" Cells(r, 2) = t Next End Sub

Excel中日期格式转换问题

Excel中日期格式转换问题 1.数字格式转年月日格式 工作表中出生年月日格式格式是如:19870714 19870906 20090902如果想改成1987-7-14或改成1987年7月14日。 1、就用此函数插入一列如B列, B1=(LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,2)); 其它单元格可以用此公式自动填充,然后把此单元格设置成日期1987-7-14 ; 2、插入一列如B列,B1=(LEFT(A1,4)&"年"&MID(A1,5,2)&"月"&RIGHT(A1,2)&"日"); 其它单元格可以用此公式自动填充,然后把此单元格设置成日期1987年7月14 日。 把这种格式2009.9.2转换成2009-09-02这样的格式:假如原始数据在A列从 A1开始,则在B1输入公式=TEXT(SUBSTITUTE(A1,".","-"),"yyyy-mm-dd"),然后下拉复制公式即可。 2.在Excel中将非日期格式数据转换为日期格式 如果Excel表格中有大量的类似“19841006”、“19841029”非日期格式的数据要转换为日期格式,如“1984-10-6”,可以用分列的方法: 1).选择需要转换单元格或区域,单击菜单“数据→分列”,弹出“文本分列向导- 3之步骤1”对话框。如果是Excel 2007,则在功能区中选择“数据”选项卡,在“数据工具”组中,单击“分列”按钮。 2).单击两次“下一步”,在“文本分列向导- 3之步骤3”中,在“列数据格式”中选择“日期”。还可以根据需要,在其后的下拉列表中选择一种日期格式。本例为默认的“YMD”格式。 3).单击“完成”按钮,Excel会在原单元格或区域中将数值格式的“19841006”和文本格式的“1984.10.6”转换为日期格式“1984-10-6”。 另外,对于“1984.10.6”文本格式的数据,还可以将“.”替换为“-”,也可以转换为日期格式。 3.将日期格式转换为数字格式 在日期后插入一列取函数 =text(a1,"yyyymmddhhmm") yyyy表示年mm表示月dd表示日hh表示时mm表示分 a1表示日期位置(第一行第一列),然后向下拖曳填充即可改变其他各行日期 4.Excel文本日期转换为日期格式

日期时间函数的应用

日期时间函数的应用 1. 使用什么函数可以显示当前的日期 可以使用Today 函数啦实现。Today 没有参数。 2. 使用什么函数可以将数值转化为日期格式 可以使用date函数来实现。Date函数用于计算特定日期的系列编号。Date (年,月,日) 3. 想建立一个活动的倒计时显示牌,可以使用什么函数实现 可以使用date与today两个函数配合实现。【二Date (年,月,日)-today ()&,”天”】- 4. 通过什么方法可以将非日期的数据转化为标准的日期 利用data 可以实现将这种非日期数据转化为标准的日期。【=data(mid (,1,4),mid(,5,2)),mid(,7,2)】 5. datevalue 函数怎吗使用 datevalue 函数可以将日期转化为所对应的序列号。【datevalue(date- text)】date-text 为日期文本 6. 怎样计算两个日期之间的间隔天数 可以使用datevalue 函数来实现。【二datevalue (” dateext ” -datevalue (” dat-etext ”】 7. 要从指定日期中获取天数,可以使用什么函数来实现 要获得任意日期对应当月的天数,可以使用day函数来实现。【day (serial-number)】 serial-number 表示指定的日期。 8. 如果给定日期所对应的序列号,是否可以返回其对应的天数。 可以使用day函数来实现。【day (serial-number) ] serial-number表示指定

的日期。 9. d ays360函数怎么用、 days360函数是按照一年360天地算法返回两个日期的相差天数【days360 ( start-date,end-date,method)] start-date: 表示计算的起始日期。End-date表示终止日期。method表示计算采用欧洲方法或美国方法。( true: xx,false: xx) 1 0."如何判断所购买的产品是否在保修期内(精确到天) 可以根据产品购买的时间以及保修天数,可以使用days360函数快速判断 出产品是否在保修期限之内。【=days360(,today(),false)] 1 1. "如何从产品的购买日期之中提取购买月份值 可以使用month 函数来快速获取。Month 用于计算指定日期所对应的月份【month( serial-number)] 1 2. "如何根据员工的出生日期快速计算其年龄 可以使用datedif 函数来实现。【datedif (date1,date2, code)date1 :表示起始日期。 date2 :表示结束日期。Code: 表示返回两个日期的参数代码。】datedif 可以用于计算两个日期之间的年 数,月数,天数 1

excel中不同日期格式的相互转换

@布兜的夏天 一、用date 函数将不同单元格的年月日转换为日期格式 DATE 函数用于计算某一特定日期的系列编号。 语法形式。DATE(year, month. day) year:表示指定的年份。 month:表示每年中月份的数字。如果所输入的月份大于12,将从指定年份一月份开始往上累加。 day:表示在该月份中第几天的数字。如果day 大于该月份的最大天数时,将从指定月数的第一天开 始往上累加。 选择D2单元格,输入“=DATE(A2,B2,C2)”,按回车,即可将数值转换为日期显示(日期所需的格式通过设置单元格进行设置)。下拉可以自动将其他的数值转换为日期显示。 二、用date 函数将同一单元格的年月日转换为日期 1、将2007.03.17转换为2007年3月17日 用type 函数检测,如2007.03.17在A1,则=type (A1)。发现2007.03.17的是当作"文本"。这种情况下用鼠标选定该列数据,点“替换”,将“.”全部替换成“-”就可以了。如图。若要日期格式为2007年3月17日这种格式,则再用右键设置单元格格式即可。 2、20070317类型转换为2007年3月17日 用TYPE 函数检测20070317是当作"数值"来处理。 20070317类型,假定原数据在A 列,则公式为=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)) 下拉填充即可。不需要公示的话就选择粘贴仅保留数值即可。 LEFT 函数用于从一个文本字符串的第一个字符开始返回指定个数的字符。LEFT( string, n ) MID 是从一个字符串中截取出指定数量的字符。mid(text, start_num, num_chars) right 函数的功能是从字符串右端取指定个数字符。 语法Right ( string, n ) 。 三、将2007年3月17日的日期格式转换为20070317的格式 有两种办法。一是点击右键设置单元格格式,点击自定义,输入yyyymmdd ,即可完成转换。 二是用text 函数。=TEXT(A1,"yyyymmdd")即可。 TEXT 将数值转换为按指定数字格式表示的文本。语法 TEXT(value,format_text)

NextDate函数测试用例

1.测试程序源代码 #include"stdafx.h" #include using namespace std; void NextDate(int year,int month,int day); void main() { int year=0,month=0,day=0; NextDate(year,month,day); } void NextDate(int year,int month,int day) { cout<<"请输入年份:"<>year; while(!(year>=1911 && year<=2013)) { cout<<"年份超过界限,请重新输入"<>year; } cout<<"请输入月份:"<>month; while (month>12||month<1) { cout<<"月份输入有误,请重新输入"<>month; } cout<<"请输入日期:"<>day; while (day>31||day<1) { cout<<"日期输入有误,请重新输入"<>day; } while(month==4&&day==31||month==6&&day==31||month==9&&day==31||month==11&&da y==31) { cout<<"小月没有31号"<>day; } if((year%4==0 && year%100!=0) || (year%400==0)) //检查闰年; {

相关主题
文本预览
相关文档 最新文档