const int NUMBER_OF_POST_TYPES = 12;
const int NUMBER_OF_TOP_LEVEL_GROUPS = 3;
const int YEARS_TO_RUN = 4;
const int WEEKS_IN_YEAR = 52;
const int DAYS_IN_WEEK = 7;
public static void Main()
var startingDate = DateTime.Today;
var numPostCategories = GetNumberOfPostCategories();
for (var weekNum = 1; weekNum < (YEARS_TO_RUN * WEEKS_IN_YEAR + 1); weekNum++)
if (weekNum % NUMBER_OF_TOP_LEVEL_GROUPS == 2)
var currentDate = startingDate.AddDays(weekNum * DAYS_IN_WEEK).ToString("D");
var postCategory = (Decimal.Truncate( weekNum / NUMBER_OF_TOP_LEVEL_GROUPS) % numPostCategories) + 1;
Console.WriteLine($"For {currentDate} - week: {weekNum} - use Post Type Category {postCategory}");
public static int GetNumberOfPostCategories()
return NUMBER_OF_POST_TYPES;