24小时热门版块排行榜    

查看: 1299  |  回复: 3

轻描淡写01

新虫 (小有名气)

[求助] Matlab题目 求解 明天就交作业了~~~~~~~ 已有1人参与

例3:编写一个程序,输入年,月,日,输出这一年到该日期为止已经逝去的天数(包括当天)
• 程序需要计算先前月份的天数之后,然后再计算当月已经过去了多少天,在求和的过程中将会用到for循环。
• 每一个月的天数不尽相同,我们用switch结构来确定每一个月的正确天数。
• 涉及闰年,在公历中,闰年是这样规定的
1. 能被400整除的年为闰年
2. 不能被400整除但能被100整除的年不为闰年
3. 不能被100整除但能被4整除的年为闰年
4. 其余的年份不为闰年
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mygt_hit

专家顾问 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
CODE:
function [TotalDays, Flag_Leap_Year] = MyTotalDays(yyyy,mm,dd)
% 计算当年逝去天数
% 也可用Matlab库函数daysdif计算:daysdif('01/01/2015','11/04/2015',0)
% datenum也可。
Year = yyyy;
Month = mm;
Day = dd;
% 建议增加年月日数据合法性判断
% 判断是否为闰年
% 1. 能被400整除的年为闰年
% 2. 不能被400整除但能被100整除的年不为闰年
% 3. 不能被100整除但能被4整除的年为闰年
% 4. 其余的年份不为闰年
Flag_Leap_Year = 0;
if rem(Year,400) == 0
    Flag_Leap_Year = 1;
elseif rem(Year,400) ~= 0 && rem(Year,100) == 0
    Flag_Leap_Year = 0;
elseif rem(Year,100) ~= 0 && rem(Year,4) == 0
    Flag_Leap_Year = 1;
else
    Flag_Leap_Year = 0;
end
TotalDays = 0;
for i = 1:mm-1
    TotalDays = TotalDays + MyMonth(i, Flag_Leap_Year);
end
TotalDays = TotalDays + Day;

end

function Days = MyMonth(Month,IsLeapYear)
% 计算给定月份天数
Days = 0;
if Month == 2
    Days = 28*(~IsLeapYear) + 29*IsLeapYear;
elseif Month == 4 || Month == 6 || Month == 9 || Month == 11
    Days = 30;
else
    Days = 31;
end
end

用法示例
[D,F] = MyTotalDays(2015,11,04)
D =
   308
F =
     0
返回D:天数;F:是否为闰年。
知其然,知其所以然。
2楼2015-11-04 23:48:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

轻描淡写01

新虫 (小有名气)

引用回帖:
2楼: Originally posted by mygt_hit at 2015-11-04 23:48:48
function  = MyTotalDays(yyyy,mm,dd)
% 计算当年逝去天数
% 也可用Matlab库函数daysdif计算:daysdif('01/01/2015','11/04/2015',0)
% datenum也可。
Year = yyyy;
Month = mm;
Day = dd;
% 建议增加年月日 ...

谢谢啦  ~~~  已经解决了
3楼2015-11-05 10:14:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shenyxtata

金虫 (正式写手)

2楼给个完整程序才赏1个金币
4楼2015-11-05 10:20:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 轻描淡写01 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +15 爱看书的可乐 2026-08-26 17/850 2026-08-27 15:43 by xxniao123
[基金申请] 国自然面上复盘~欢迎讨论 (金币+5) +8 晴天加油 2026-08-26 9/450 2026-08-27 14:14 by gltch
[基金申请] 基金未中,这种答复是模板吗? +4 zhaosm1982 2026-08-27 5/250 2026-08-27 12:17 by zhaosm1982
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 面上合作单位盖章 +3 ssyjh 2026-08-27 3/150 2026-08-27 09:59 by 阿拉贡aragon
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 让我中一个面上吧! +13 大萍1987 2026-08-20 17/850 2026-08-27 08:20 by 大萍1987
[教师之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 04:33 by Ie9AyIAvGbvs
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
信息提示
请填处理意见