Matlab实现判别当天日期、Matlab更改日期格式并连续在excel中输出下一个月初至月末的日期序列(datetime函数、dateshift函数、datastr函数、datanum函数介绍)

datetime函数、dateshift函数、datastr函数、datanum函数、cellstr函数以及format属性介绍

1.datetime函数用来输出日期,datetime(‘today’)即可输出当日的日期

在这里插入图片描述

2. dateshift函数用来推移日期或生成日期与时间序列,dateshift(t,‘start’,‘month’,‘next’)可以通过判定当前日期输出距离当前日期最近的下月初,其中t表示当前时间一般与datetime函数结合使用,'strat’即控制月初('end’控制月末),'month’代指月,next将 datetime 值推移到下一时间单位 (其中’next’可以用1代替,若想输出下下月初日期仅需将’next’替换成2即可)

在这里插入图片描述
在这里插入图片描述

3.利用datestr函数可以将日期转换成字符格式,利用datenum函数可以将日期转换成数值格式,具体语法为:datestr(t),datenum(t),t为任意时间可以结合datetime函数得到。

在这里插入图片描述

4. 利用format值更改日期格式,可以与 datestr、datenum函数结合使用,具体语法为datestr(t,‘yyyy/mm/dd’),其中t代指任意时间,'yyyy/mm/dd’表示format值,共有以下几种format值进行参考。当t为datetime(‘today’)今日日期时,选定’yyyy-mm-dd’格式,结果如下图

在这里插入图片描述
在这里插入图片描述

利用datetime函数与dateshift函数连续在excel中输出下一个月初至月末的日期序列

1. 首先利用t = datetime(‘today’)函数得到当天日期

2.通过t2 = dateshift(t,‘start’,‘month’,‘next’)判断当前日期并推移到下一时间单位 ,得到下月初1的日期

3. 写for循环,循环输出下月初到月末的日期,用lie_1变量进行存贮,由于matlab中循环是从1开始的,因此在进行循环前应将t2减去1得到t3,在进行循环过程中,日期要以数值的形式存在所以使用datenum函数将日期转换为数值型

 t3=t2-1;
 for i=1:31
     lie_1(1,i)=datenum(t3+i);%进行赋值时从日期时间转换为数值
 end

在这里插入图片描述

4.此时得到的日期格式是数值,格式不是我们想要的,所以我们要利用datestr函数转换日期格式贮到变量lie_1_new中,但如果直接转换的话会出现如下问题:无法执行赋值,因为左侧的索引与右侧的大小不兼容。

在这里插入图片描述

进行探究,直接令m=datestr(lie_1(1,1),‘yyyy-mm-dd’),m为一个1×10的字符数组,lie_1_new(1,1)仅能存入1×1的维度的数据,m因此不能直接放入lie_1_new中,我们需要利用cellstr函数将字符数组转换成1×1的元胞数组,令m=datestr(lie_1(1,1),‘yyyy-mm-dd’),可见m变为1×1的cell数组

在这里插入图片描述
在这里插入图片描述

借助cellstr函数将所有日期转换成元胞数组并存贮在lie_1_new中,如下图所示,即可运行成功。

在这里插入图片描述

5.将结果输出到excel表格中,代码如下:

xlswrite(C:\Users\吴宇航\Desktop\新建文件夹\demo,lie_1_new,1,'C1')

在这里插入图片描述

6.总结整理上述代码,改代码可实现通过判别当天日期连续在excel中输出下一个月初至月末的日期序列

 t = datetime('today');
 t2 = dateshift(t,'start','month','next');%对应下月初1的时间
 t3=t2-1;
 for i=1:31
     lie_1(1,i)=datenum(t3+i);%进行赋值时从日期时间转换为数值
 end
 lie_1_new(1,:)=cellstr(datestr(lie_1,'yyyy-mm-dd'));%更改日期显示格式,并将字符数组转换为字符串
 xlswrite('D:\practice\demo.xlsx',lie_1_new,1,'A1');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋进的小hang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值