Index: stamper/stamper.py
===================================================================
--- stamper/stamper.py	(revision 0)
+++ stamper/stamper.py	(revision 7)
@@ -1,6 +1,8 @@
 
 import json
+import re
 from datetime import datetime, timedelta
 from os.path import expanduser, exists
+
 
 STAMPS_FILE = expanduser('~/.workstamps.json')
@@ -49,4 +51,38 @@
         return worktime.seconds
 
+    def validate_filter(self, stamp_filter):
+        """
+        Validate a given filter. Filters can have the following notation:
+
+        - %Y-%m-%d--%Y-%m-%d: Times recorded between two dates
+
+        - -%Y-%m-%d: Times recorded before a given date
+
+        - +%Y-%m-%d: Times recorded after a given date
+
+        - N...N[d|w|m|y]: Times recorded N...N days/weeks/months/years ago
+        """
+        # First try the date filters, one by one
+        matches = ['%Y-%m-%d', '-%Y-%m-%d', '+%Y-%m-%d']
+        for match in matches:
+            try:
+                if '--' in stamp_filter:
+                    filter_from, filter_to = stamp_filter.split('--')
+                    filter_from = datetime.strptime(stamp_filter, match)
+                    filter_to = datetime.strptime(stamp_filter, match)
+                else:
+                    valid_filter = datetime.strptime(stamp_filter, match)
+            except ValueError:
+                pass
+            else:
+                return stamp_filter
+
+        valid_filter = re.search(r'(\d+[dwmyDWMY]{1})', stamp_filter)
+        if valid_filter:
+            return stamp_filter
+
+        # Not a valid filter
+        return None
+
     def customers(self):
         customers = []
