matlab - 将 hh:mm 时间转换为十进制时间(Matlab)
问题描述
我正在尝试使用 Matlab 以十进制小时数获取日出和日落时间。请看下面的代码。我已经到了结果是 2 个 1x2“单元”数组的地步,其中第一个单元中的时间表示为“hh:mm”。我想将其转换为十进制时间,例如将 '08:41' 转换为 8.68333 作为双精度数组。我怎样才能做到这一点?
谢谢。
clear all;
close all;
tic;
startDate = datetime(date, 'ConvertFrom', 'yyyymmdd', ...
'TimeZone', 'UTC', ...
'Format', 'd MM yyyy');
%% Download sunset and sunrise time
date_day = day(startDate);
date_month = month(startDate);
date_year = year(startDate);
% Brussels
fullURL1 = sprintf('http://api.aladhan.com/v1/calendarByCity?city=Brussels&country=Belgium&method=2&month=%02d&year=%04d',date_month,date_year);
api = fullURL1;
url = [api 'country'];
S = webread(url);
sunrise = sprintf('S.data(%02d).timings.Sunrise',date_day);
sunrise = eval(sunrise);
sunrise = strsplit(sunrise);
sunset = sprintf('S.data(%02d).timings.Sunset',date_day);
sunset = eval(sunset);
sunset = strsplit(sunset);
clearvars url fullURL1 api S
解决方案
您可以转换为datenum,从中取日分数并乘以 24。例如:
f = rem(datenum('08:41', 'HH:MM'), 1)*24 % format is optional
%f =
% 8.6833
推荐阅读
- java - 如何使用forAll检查数组中的所有字符串是否以大写字母开头?
- powershell - PowerShell 索引
- c++ - C++ 无序映射 - 没有可行的重载运算符 []
- python - 适用于 Python 的正则表达式格式(Perl-Python 不匹配)
- mysql - 价值正在重复
- slingr - 保存记录时的乐观锁定
- python - 如何在 python-ldap 中获取 child_object
- jquery - 如何在 jquery 中添加或删除矩阵的行?
- java - POI XSSF 读取所有列,而不仅仅是所有定义的列 - 结果不是预期的
- excel - for循环VBA中的If语句