Function

コメント・参照等
  • 元号表記の年月日を西暦表示に変換する関数

FUN = f_convert_Gengou_to_Seireki.r
function (date_string = "令和元年5月1日") 
{
    library(Nippon)
    date_string <- zen2han(date_string)
    date_string <- gsub("元年", "1年", date_string)
    pattern_string <- "(.{2})(.+)年(.+)月(.+)日"
    gengou <- gsub(pattern_string, "\\1", date_string)
    yyyy <- as.numeric(gsub(pattern_string, "\\2", date_string))
    mm <- as.numeric(gsub(pattern_string, "\\3", date_string))
    dd <- as.numeric(gsub(pattern_string, "\\4", date_string))
    if (is.na(yyyy * mm * dd)) {
        stop("流石に漢数字は遠慮してください。")
    }
    else {
        convert <- switch(iconv(x = gengou, from = "utf8", to = "cp932"), 明治 = 1867, 大正 = 1911, 昭和 = 1925, 平成 = 1988, 令和 = 2018)
        return(as.Date(paste0(convert + yyyy, "-", mm, "-", dd)))
    }
}