How can I list files within specific time range:
find /YOUR/SEARCH/DIR -type f -mmin -300 2> /dev/null
Finds every file for your first criteria.
For the second:
touch -d "2011-12-10" 2012-12-10
touch -d "2011-12-21" 2012-12-21
find /YOUR/SEARCH/DIR -type f -anewer 2012-12-10 ! -anewer 2012-12-21 2> /dev/null
It first creates two reference files based on your date criterias, then search by using them.