
function [d m y]=mydate()
c=clock;
d=c(3);
if nargout>1
m=c(2);
if nargout>2
y=c(1);
end
end
错了,是借用date函数,而不是clock函数,==再改
function [d m y]=temp()
c=date;
d=c(1:2);
if nargout>1
m=c(4:6);
if nargout>2
y=c(8:11);
end
end
这样就符合要求了吧?还可以这样
function [d m y]=mydate()
c=date;
d=day(c);
if nargout>1
m=month(c);
if nargout>2
y=year(c);
end
end
因为日期型数据实际上是数值,表示距离1900年1月1日的天数,只不过按日期格式显示罢了
比如说A1显示为2002-10-28,你把它设置成常规格式,它就会变成37557,表示距离1900年1月1日的天数,当用MID(A1,4)时,显示的是3755,而不是2002
正确的写法是:
=year(a1)
或者
=text(a1,"yyyy")
----
有的能显示,有的不能显示,说明A列数据不规范,有些是日期型数据,有些是字符型数据,要先把它转换成数值型数据,所以在A1前加"--"符号
=year(--a1)
或者
=text(--a1,"yyyy")
date型变量及函数的用法,这里够详细了,好好研究一下啊! 我的收藏,参考!
1、DATE型变量及其相关函数。
在内部,一个Date占8个字节的内存,你可以方便地用它来存储日期和时间。给Date变量赋值是很容易的。但请保证输入顺序与系统默认的时间表示顺序相同。例如:
Dim d As Date
d = #5/23/99 11:45:34 AM#
DateSerial函数可以把年、月、日的数字组合成一个Date值。TimeSerial函数可把小时、分、秒的数字组合成一个Date值。且两函数可以叠加。
d = DateSerial(1999, 5, 23) + TimeSerial(11, 45, 34)
而DateValue 和TimeValue 函数则可将代表日期和时间的字符串转化为Date型,并且也可以叠加。
d = DateValue("1999/ 5/ 23") + TimeValue("11: 45: 34")
Format函数可按预定的格式显示或打印一个Date变量。如:
Print Format(d, "general date") '99-5-23 11:45:34
Print Format(d, "long date") '1999年5月23日
Print Format(d, "medium date") '99-05-23
Print Format(d, "short date") '99-5-23
Print Format(d, "long time") '11:45:34
Print Format(d, "medium time") '11:45 AM
Print Format(d,"short time") '11:45
Format函数也允许你自己规定显示格式。如:
Print Format(d, "mmmm") 'may 产生日期中月份的英文
以以上日期为例,如想显示其中的一部分信息可使用以下函数:
Print Month(d) '5
Print Day(d) '23
Print Year(d) '1999
Print Hour(d) '11
Print Minute(d) '45
Print Second(d) '34
Print WeekDay(d)'1
Weekday 提供了一组内部常量,vbSunday代表1,直到 vbSaturday代表7。
Now 函数可返回今天的日期及时间。如:
Private Sub Form_Click()
Dim d As Date
d = Now
Print d
End Sub
灵活地应用以上的函数,可以大大地简化你的程序。例如想计算10000秒等于几小时几分几秒可写为:
Private Sub Form_Click()
Dim d As Date
d = TimeSerial(0, 0, 10000)
Print d
End Sub
结果为2:46:40。
2、与时间相关的常用控件。
Timer控件是一个奇特的控件。Timer 控件会在固定时间间隔中运行Timer事件。此间隔是由Interval属性决定的,其单位为千分之一秒。但不要以为将其值设为0事件就可不间断地运行了。结果恰恰相反,事件将一次也不运行。同时还要注意变量的声明。如:
Private Sub Timer1_Timer()
Dim a As Integer
a = a + 1
Print a
End Sub
Dim a As Integer
Private Sub Timer1_Timer()
a = a + 1
Print a
End Sub
试试看,其结果是完全不同的。
当需要用户输入时间时,为避免出现错误的时间,可以使用日历控件。它只允许用户在日历表中选择日期,避免了错误的发生。
3、记录时间的API函数。
GetTickCount Windows API函数可返回 Windows 启动以来消失的毫秒数。其精度高于VB的Timer 函数。且Timer 函数会在午夜清零,而GetTickCount 函数只有当机器连续使用497天后才返回零。这为我们编程提供了很大的方便。例如想知道你的电脑连续工作多久了,可新建一工程,然后添加以下代码:
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Form_Load()
Dim d As Date
Dim t As Integer
Form1Show
t = GetTickCount \ 1000
d = TimeSerial(0, 0, t)
Print d
End Sub
如果你只要显示当前日期可用函数 =TODAY()
NOW()函数表示日期和时间
你可以选中元写入函数公式的单元格或区域---右键----,设置单元格格式---数字选项卡---日期---选中一个不带时间的日期样式
如果一定用NOW函数且不改格式就能只显示日期,则公式可以写为
=TEXT(NOW(),"e/m/d")
或
=TEXT(NOW(),"e-mm-dd")
或
=TEXT(NOW(),"e年m月d日")
等
var a=new Date();
var y=agetFullYear();
var m=agetMonth()+1;
var d=agetDate();
返回结果是2022-10-31
date函数有三个参数,year,month,day
Year 参数 year 可以为一到四位数字。Microsoft Excel 将根据所使用的日期系统来解释 year 参数。默认情况下,Microsoft Excel for Windows 将使用 1900 日期系统,而 Microsoft Excel for Macintosh 将使用 1904 日期系统。
DATE函数也适用于其他各种的编程语句。
对于 1900 年日期系统
如果 year 位于 0(零)到 1899(包含)之间,则 Excel 会将该值加上 1900,再计算年份。例如:DATE(108,1,2) 将返回 2008 年 1 月 2 日 (1900+108)。如果 year 位于 1900 到 9999(包含)之间,则 Excel 将使用该数值作为年份。例如:DATE(2008,1,2) 将返回 2008 年 1 月 2 日。如果 year 小于 0 或大于等于 10000,则Excel将返回错误值#NUM!。
对于 1904 年日期系统
如果 year 位于 4 到 1899(含)之间,则 Excel 会将该值加上 1900,再计算年份。例如:DATE(108,1,2) 将返回 2008 年 1 月 2 日(1900+108)。如果 year 位于 1904 到 9999(含)之间,则 Excel 将使用该数值作为年份。例如:DATE(2008,1,2) 将返回 2008 年 1 月 2 日。如果 year 小于 4 或大于等于 10000,或者位于 1900 到 1903(含)之间,则 Excel 将返回错误值#NUM!。
Month 代表每年中月份的数字。如果所输入的月份大于 12,将从指定年份的一月份开始往上加算。例如:DATE(2008,14,2) 返回代表 2009 年 2 月 2 日的序列号。
如果所输入的月份小于 0,将从指定年份前一年的十二月份开始往下减去相应的月份数。例如:DATE(2008,-3,2) 返回代表 2007年 9 月 2 日的序列号。
Day 代表在该月份中第几天的数字。如果 day 大于该月份的最大天数,则将从指定月份的第一天开始往上累加。例如,DATE(2008,1,35) 返回代表 2008 年 2 月 4 日的序列号。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)