Add ToDuration
diff --git a/cast.go b/cast.go
index 9c607fa..fe382ca 100644
--- a/cast.go
+++ b/cast.go
@@ -17,6 +17,11 @@
 	return v
 }
 
+func ToDuration(i interface{}) time.Duration {
+	v, _ := ToDurationE(i)
+	return v
+}
+
 func ToFloat64(i interface{}) float64 {
 	v, _ := ToFloat64E(i)
 	return v
diff --git a/caste.go b/caste.go
index 11a06fb..72c7690 100644
--- a/caste.go
+++ b/caste.go
@@ -35,6 +35,22 @@
 	}
 }
 
+func ToDurationE(i interface{}) (d time.Duration, err error) {
+	i = indirect(i)
+	jww.DEBUG.Println("ToDurationE called on type:", reflect.TypeOf(i))
+
+	switch s := i.(type) {
+	case time.Duration:
+		return s, nil
+	case string:
+		d, err = time.ParseDuration(s)
+		return
+	default:
+		err = fmt.Errorf("Unable to Cast %#v to Duration\n", i)
+		return
+	}
+}
+
 func ToBoolE(i interface{}) (bool, error) {
 	i = indirect(i)
 	jww.DEBUG.Println("ToBoolE called on type:", reflect.TypeOf(i))