Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/date.py
blob: 2894a877dfa74afed031206c14aff4b0264abdc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""Simple date-representation model"""
import datetime

class Date(object):
    """Date-object storing a simple time.time() float
    
    XXX not sure about the rationale for this class,
    possibly it makes transfer over dbus easier?
    """
    def __init__(self, timestamp):
        """Initialise via a timestamp (floating point value)"""
        self._timestamp = timestamp

    def __str__(self):
        """Produce a formatted date representation
        
        Eventually this should produce a localised version 
        of the date.  At the moment it always produces English
        dates in long form with Today and Yesterday 
        special-cased and dates from this year not presenting
        the year in the date.
        """
        date = datetime.date.fromtimestamp(self._timestamp)
        today = datetime.date.today()

        # FIXME localization
        if date == today:
            result = 'Today'
        elif date == today - datetime.timedelta(1):
            result = 'Yesterday'
        elif date.year == today.year:
            result = date.strftime('%B %d')
        else:
            result = date.strftime('%B %d, %Y')

        time = datetime.datetime.fromtimestamp(self._timestamp)
        result = result + ', ' + time.strftime('%I:%M %p')

        return result