数学建模社区-数学中国

标题: 怎样用function来检验是否是闰年 [打印本页]

作者: 夜筱巫    时间: 2013-8-1 06:07
标题: 怎样用function来检验是否是闰年
我要写个function来检验末年是否是闰年。开头这样:
  1. leapyear<-function(x){}
复制代码
闰年这里的定义是:' r6 b" r( R6 a7 I1 y; f* {, J
如果那一年可以整除4(比如2004),2月就有29天
2 a, V! G% r1 y2 M3 a1 z1 S如果那一年不能整除100
! i' B6 r2 p7 I# ^如果那一年可以整除4002 `# f/ T" A' q8 F- ^) D# ?

" w! V' K" f4 Q* J4 F+ @- Z如果x<1,这个function就要return “error”。我不大懂这个条件的意思,可否请大师解释下?
1 x% p- ^9 I6 Q9 T% u0 Y; T( l( z/ N! k1 G  A( y4 e
我写的function是这样的:
  1. leapyear<- function(dates, years_to_add)" i7 s/ [+ F5 z/ |  i7 a, p" v) K
  2. {
    3 Q( m8 E$ p9 i9 q
  3.   if(!require(lubridate)) stop("install lubridate")
    # t# n' c1 y8 U4 }8 f
  4.   if(years_to_add > floor(years_to_add)) stop("error")
    4 i% O( V% `+ B' B: j
  5.   9 ]7 T1 ]; N3 M7 i, w( t8 H/ B
  6.   new <- dates + years(years_to_add)
    0 |6 E. M3 b& |. ~' O1 ?  y
  7.   new[
    " a  l* ~! Q; ?
  8.     leap_year(year(dates)) & + a4 x; a8 K/ a) m# _7 m2 X/ |- _3 J
  9.       !leap_year(year(dates) + years_to_add) & ) e" G" L) v# H8 s9 d1 Q& H9 ~
  10.       month(dates) == 2 &
    , K7 t0 p4 O* P. W. q7 q1 |$ Y
  11.       day(dates) == 29# l. }; Y! b3 v
  12.     ] <- NA
    ( i# ], b- C7 a9 \7 m
  13.   new_dates' e/ Z# ?* s( o5 N9 c5 _' Z
  14. }
    ! K! j/ V; w  w) V
  15. 9 u& }8 X/ U: u2 M
  16. dates <- ymd(c("2004-2-28", "2004-2-29"))
复制代码
不知道对不对,但是检验的时候显示ymd找不到。。。。
2 f' P# X6 z) }1 R! W+ X
  }  E. |6 b# g, o* f% q请各位大师帮帮忙!小妹感激不尽!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5