You can create a function that accepts 3 parameters
public List<Aritcle> GetTopArticles(int top, DateTime startDate, DateTime endDate)
{
//Implement this method
//e.g.
//Select Top(10) * From Article
//Where likeDate Between startDate AND endDate
//ORDER BY Likes DESC
}
You can now call this method several times based on the date you want e.g. This week, last week, last month
var topArticlesThisWeek = GetTopArticles(10, DateTime.Parse('2013-03-24'), DateTime.Today);
var topArticlesLastMonth = GetTopArticles(10, DateTime.Parse('2013-02-01'), DateTime.Parse('2013-02-29'));
But those days have to be dynamic - not as hard-coded as I did