aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/serializer/validating/time-zone.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsde/xsde/cxx/serializer/validating/time-zone.ixx')
-rw-r--r--libxsde/xsde/cxx/serializer/validating/time-zone.ixx32
1 files changed, 32 insertions, 0 deletions
diff --git a/libxsde/xsde/cxx/serializer/validating/time-zone.ixx b/libxsde/xsde/cxx/serializer/validating/time-zone.ixx
new file mode 100644
index 0000000..c6e80f4
--- /dev/null
+++ b/libxsde/xsde/cxx/serializer/validating/time-zone.ixx
@@ -0,0 +1,32 @@
+// file : xsde/cxx/serializer/validating/time-zone.ixx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : Copyright (c) 2005-2009 Code Synthesis Tools CC
+// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+namespace xsde
+{
+ namespace cxx
+ {
+ namespace serializer
+ {
+ namespace validating
+ {
+ namespace bits
+ {
+ inline bool
+ valid_time_zone (const time_zone& z)
+ {
+ short h = z.zone_hours ();
+ short m = z.zone_minutes ();
+
+ unsigned short ah = h < 0 ? -h : h;
+ unsigned short am = m < 0 ? -m : m;
+
+ return ((h <= 0 && m <= 0) || (h >= 0 && m >= 0)) &&
+ ((ah < 14 && am < 60) || (ah == 14 && am == 0));
+ }
+ }
+ }
+ }
+ }
+}