Matlab时间

130 篇文章 4 订阅
7 篇文章 0 订阅
这篇博客介绍了如何在Matlab中使用自带函数进行时间计算,如日期转换,并展示了自定义函数实现闰年判断及天数转换为月份和日期的方法。此外,还通过示例演示了使用tic和toc创建进度条以及显示已用时间和剩余时间的功能。
摘要由CSDN通过智能技术生成

自带函数

startDate = datestr('1900-01-01 00:00:00', 'yyyy-mm-dd HH:MM:SS');
datestr(datenum(startDate) + 61710480/60/24, 'yyyymmdd')

datestr(now, 'yyyymmdd')

自定义函数

function flag = isLeapYear( year )
if (mod(year,4)==0&&mod(year,100)~=0) || mod(year,400)==0
    flag=1;
else
    flag=0;
end
%month(datetime(year, 1, doy))
%day(datetime(year, 1, doy))
function [month,day] = doy2md(doy,year)

dom=[31,28,31,30,31,30,31,31,30,31,30,31];

if isLeapYear(year)
    dom(2)=29;
end

day=doy;
month=1;

while(day>dom(month))
    day=day-dom(month);
    month=month+1;
end

tic, toc

number = 10000;
last_t = 0;
tic;
for i=1:number 
	pause(0.1);
	t=toc;
	
	if t-last_t>=1
		last_t = t;
		hh = floor(t/3600);
		mm = floor(t/60) - 60*hh;
		ss = t - 60*mm - 3600*hh;
		use_time = sprintf("%02d:%02d:%02.3f", hh, mm, ss)

		t = (t/i)*(number-i);
		hh = floor(t/3600);
		mm = floor(t/60) - 60*hh;
		ss = t - 60*mm - 3600*hh;
		left_time = sprintf("%02d:%02d:%02.3f", hh, mm, ss)
	
		clc;
		fprintf('已用时%s,剩余时间%s\n', use_time, left_time );
	end
end

进度条

number = 10000;
for i=1:number
    progress = floor(i/number*30);
    fprintf(['进度:', repmat('█', 1, progress), repmat('□', 1, 30-progress), ' %2.2f%%\n'], i/number*100);
    pause(0.1);
end

时间

julian day得到日期

julian_day = 25854.1424; %(days since 1950-01-01 00:00:00 UTC)
date_obj = datetime(juliandate(1950, 1, 1, 0, 0, 0) + julidan_day, ...
    'ConvertFrom', 'juliandate', ...
    'TimeZone', 'UTC', 'Format', 'yyyy-MM-dd HH:mm:ss.SSS Z');

2020年第201天,得到年月日

datevec(datenum(2020, 1, 201))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值