Issue 6280: Tests and simpler implementation for calendar.timegm
diff --git a/Lib/calendar.py b/Lib/calendar.py
index 0c1fdad..a82b21a 100644
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -587,17 +587,12 @@
 
 
 EPOCH = 1970
-_EPOCH_ORD = datetime.date(EPOCH, 1, 1).toordinal()
-
+_EPOCH_DATETIME = datetime.datetime(EPOCH, 1, 1)
+_SECOND = datetime.timedelta(seconds=1)
 
 def timegm(tuple):
     """Unrelated but handy function to calculate Unix timestamp from GMT."""
-    year, month, day, hour, minute, second = tuple[:6]
-    days = datetime.date(year, month, 1).toordinal() - _EPOCH_ORD + day - 1
-    hours = days*24 + hour
-    minutes = hours*60 + minute
-    seconds = minutes*60 + second
-    return seconds
+    return (datetime.datetime(*tuple[:6]) - _EPOCH_DATETIME) // _SECOND
 
 
 def main(args):