createDateVars <- function(year=format(Sys.Date(), "%Y"), past=TRUE, suffix=NULL, envir=globalenv(), safetybreak=0) {

  if (safetybreak > 10)
    stop ("It appears createDateVars() may be hitting an infinite loop")

  year <- as.character(year)
  values <- as.Date(   sprintf("%s-%02i-01", year, seq(month.abb)),  origin=.origin)
  if (isTRUE(suffix))
    suffix <- substr(year, nchar(year)-1, nchar(year))
  nms <- paste0(month.abb, suffix)
  for (i in seq(nms))
    assign(nms[[i]], values[[i]], envir=envir)

  ret <- nms
  if (isTRUE(past)) {
    ret <- c(ret, createDateVars(year=as.numeric(year)-1, suffix=TRUE, past=FALSE, envir=envir, safetybreak=safetybreak+1))
  }
  return(invisible(ret))
}
