爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4575|回复: 5

[程序设计] 计算某天是一年中第几天的函数分享

[复制链接]

新浪微博达人勋

发表于 2015-3-17 10:35:32 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
有时候会用到某一天是概念第一天的计算问题,从网上搜索了一个函数,但是感觉太啰嗦,就自己编写另一个,经测试是正确的,有用到的可以看看,并附上网上下载的程序


function nday = nday_of_year(syyyymmdd)
% syyyymmdd is a string ,
% the format must be like 'yyyymmdd', i.e. '20150317'
% author: bigocean

nyyyymmdd = datenum(syyyymmdd,'yyyymmdd');
syyyy0101 = [syyyymmdd(1:4),'01','01'];
nyyyy0101 = datenum(syyyy0101,'yyyymmdd');
nday = nyyyymmdd - nyyyy0101 + 1;

end







以下是在社区动力论坛是看到


function nofdate
%计算某天是一年中第几天。
disp('this is program calculates the day of year given the');
disp ('currert date:');
month=input('enter current month(1-12):');
day=input ('enter current day(1-31):');
year=input('entert currert year(yyyy):');
if mod(year,400)==0
    leap_day=1;
else if mod(year,100)==0
        leap_day=0;
    else if mod(year,4)==0
            leap_day=1;
           else leap_day=0;
        end
    end
end
        
        day_of_day=day;
        day_of_year=0;%!!!!!!!!!!!
        for ii=1:month-1
            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
        fprintf('the date %2d/%2d/%4d is day of year %d\n',...
            month,day,year,day_of_year);
        end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-3-17 10:53:23 | 显示全部楼层
DOY的计算...有很多方法的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2015-3-17 12:11:22 | 显示全部楼层
这个东西嘛,楼主利用了Matlab自身函数,而下面那个估计是从C改过来的,其实都是一样的……
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-25 10:56:08 | 显示全部楼层
{:eb513:}。哈哈,挺好用的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-8-3 14:48:56 | 显示全部楼层
调用的时候显示错误:未定义与 'char' 类型的输入参数相对应的函数 'nday_of_year'。请问楼主是什么原因?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-9-27 12:06:56 | 显示全部楼层
Annie 发表于 2016-8-3 14:48
调用的时候显示错误:未定义与 'char' 类型的输入参数相对应的函数 'nday_of_year'。请问楼主是什么原因?

没太看明白你出现的情况,可能是输入格式的问题,你能不能把你的程序贴上来看一下
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表