matlab闰年,MATLAB编程,闰年问题

% Script file: doy.m

%

% Purpose:

% This program calculates the day of year corresponding

% to a specified date. It illustrates the use switch

% and for constructs.

%

% Record of revisions:

% Date Programmer Description of change

% ==== ========== =====================

% 12/07/98 S. J. Chapman Original code

%

% Define variables:

% day   --Day (dd)

% day_of_year   --Day of year

% ii  --Loop index

% leap_day    --Extra day for leap year

% month     --Month (mm)

% year --Year(yyyy)

% Get day, month, and year to convert

disp('This program calculates the day of year given the ');

disp('current date.');

month = input('Enter current month (1-12):');

day = input('Enter current day(1-31):');

year = input('Enter current year(yyyy): ');

% Check for leap year, and add extra day if necessary

if mod(year,400) == 0

leap_day = 1; % Years divisible by 400 are leap years

elseif mod(year,100) == 0

leap_day = 0; % Other centuries are not leap years

elseif mod(year,4) == 0

leap_day = 1; % Otherwise every 4th year is a leap year

else

leap_day = 0; % Other years are not leap years

end

% Calculate day of year by adding current day to the

% days in previous months.

day_of_year = day;

for ii = 1:month - 1

% Add days in months from January to last month

switch (ii)

case {1,3,5,7,8,10,12},

day_of_year = day_of_year + 31;

case {4,6,9,11},

day_of_year = day_of_year + 30;

case 2,

day_of_year = day_of_year + 28 + leap_day;

end

end

% Tell user

fprintf('The date %2d/%2d/%4d is day of year %d.\n', month, day, year, day_of_year);

请问各位前辈,加红色标志的为什么是 month-1 啊?!谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值