Erlang Thursday – calendar:is_leap_year/1

今天的Erlang Thursday讲的是 calendar:is_leap_year/1.

calendar:is_leap_year/1 接收一个非负整数表示的年份,如果这个年份是闰年,则返回true,否则返回false。

1
2
3
4
5
6
7
8
9
10
11
12
calendar:is_leap_year(2015).
% false
calendar:is_leap_year(2012).
% true
calendar:is_leap_year(2017).
% false
calendar:is_leap_year(2000).
% true
calendar:is_leap_year(1900).
% false
calendar:is_leap_year(0).
% true

有了这个Erlang核心库的内置函数,意味着你不需要编写代码或者甚至不需要查找规则来记住如何判断某个年份到底是不是闰年。

如果你传递一个负数来表示年份,Erlang将抛出一个异常,因为没有一个函数分支能匹配用负数来表示的年份。

1
2
3
4
calendar:is_leap_year(-1).
% ** exception error: no function clause matching calendar:is_leap_year(-1) (calendar.erl, line 183)
calendar:is_leap_year(-4).
% ** exception error: no function clause matching calendar:is_leap_year(-4) (calendar.erl, line 183)

原文链接: https://www.proctor-it.com/erlang-thursday-calendar-is_leap_year-1/