I put the codes of TimeIterable to a separate file for backup, Ding can further modify on that
Merge remote-tracking branch 'origin/master'