Merge pull request #11 from arkdro/master

add api to check whether the dst is active
This commit is contained in:
aj heller
2013-03-07 13:48:28 -08:00
2 changed files with 42 additions and 0 deletions

View File

@@ -5,6 +5,8 @@
localtime/1
, utc_to_local/2
, local_to_utc/2
, has_dst_utc/2
, has_dst_local/2
]).
@@ -30,7 +32,11 @@ local_to_utc(LocalDatetime, TzName) ->
local_to_utc_handleFlatzone(LocalDatetime, ezic_db:flatzone(NormalDatetime, TzName)).
has_dst_utc(Datetime, TzName) ->
has_dst(Datetime, TzName, u).
has_dst_local(Datetime, TzName) ->
has_dst(Datetime, TzName, w).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PRIVATE
@@ -55,3 +61,12 @@ local_to_utc_handleFlatzone(LocalDatetime, #flatzone{offset=Offset, dstoffset=DS
, Offset, {0,0,0})
, DSTOffset, {0,0,0}).
has_dst(Datetime, TzName, Flag) ->
NormalDatetime = ezic_date:normalize(Datetime, Flag),
case ezic_db:flatzone(NormalDatetime, TzName) of
#flatzone{dstoffset={0,0,0}} ->
false;
#flatzone{dstoffset={_,_,_}} ->
true
end.