From 7bcd1596b04a6a2c971569c5fdfdc96ba9e61c8c Mon Sep 17 00:00:00 2001 From: arkdro Date: Thu, 21 Feb 2013 00:07:14 +0400 Subject: [PATCH] add api to check whether the dst is active --- src/ezic.erl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/ezic.erl b/src/ezic.erl index 18ce7f0..c6612f0 100644 --- a/src/ezic.erl +++ b/src/ezic.erl @@ -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,14 @@ 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; + _ -> + false + end. +