changeset 398:c37bc86b4e3a

Fixed quarters in date formatting.
author cmlenz
date Tue, 15 Jul 2008 16:34:18 +0000
parents ff9a6a37eb72
children df4bda99cf8e
files ChangeLog babel/dates.py babel/tests/dates.py
diffstat 3 files changed, 26 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,15 @@
    relative times with strings such as "2 days" or "1 month" (ticket #126).
 
 
+Version 0.9.4
+http://svn.edgewall.org/repos/babel/tags/0.9.4/
+(???, from branches/stable/0.9.x)
+
+ * Currency symbol definitions that is defined with choice patterns in the
+   CLDR data are no longer imported, so the symbol code will be used instead.
+ * Fixed quarter support in date formatting.
+
+
 Version 0.9.3
 http://svn.edgewall.org/repos/babel/tags/0.9.3/
 (Jul 9 2008, from branches/stable/0.9.x)
--- a/babel/dates.py
+++ b/babel/dates.py
@@ -841,6 +841,14 @@
             year = year[-2:]
         return year
 
+    def format_quarter(self, char, num):
+        quarter = (self.value.month - 1) // 3 + 1
+        if num <= 2:
+            return ('%%0%dd' % num) % quarter
+        width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[num]
+        context = {'Q': 'format', 'q': 'stand-alone'}[char]
+        return get_quarter_names(width, context, self.locale)[quarter]
+
     def format_month(self, char, num):
         if num <= 2:
             return ('%%0%dd' % num) % self.value.month
--- a/babel/tests/dates.py
+++ b/babel/tests/dates.py
@@ -22,6 +22,15 @@
 
 class DateTimeFormatTestCase(unittest.TestCase):
 
+    def test_quarter_format(self):
+        d = date(2006, 6, 8)
+        fmt = dates.DateTimeFormat(d, locale='en_US')
+        self.assertEqual('2', fmt['Q'])
+        self.assertEqual('2nd quarter', fmt['QQQQ'])
+        d = date(2006, 12, 31)
+        fmt = dates.DateTimeFormat(d, locale='en_US')
+        self.assertEqual('Q4', fmt['QQQ'])
+
     def test_month_context(self):
         d = date(2006, 1, 8)
         fmt = dates.DateTimeFormat(d, locale='cs_CZ')
Copyright (C) 2012-2017 Edgewall Software