月曜日の日付を特定する

やりたいこと

月曜日の日付を特定する。

ソシャゲで週ごとのイベントの数値集計したいときに重宝する機能である。

 

解決法

日付をunix timeに変換してから割り算をする。

割り算のあまりで「月曜日が何日前か?」を判断して、引き算を行う。

コードは以下

 



DetectDateOfMonday <- function(input_date){
# 月曜日の日付を特定
remain <- as.numeric(as.Date(input_date)) %% 7
Datetype_input_date <- as.Date(input_date)

if (remain==4){
return(as.character(input_date))
} else if(remain==5){
return(as.character(Datetype_input_date - 1))
} else if(remain==6){
return(as.character(Datetype_input_date - 2))
} else if(remain==0){
return(as.character(Datetype_input_date - 3))
} else if(remain==1){
return(as.character(Datetype_input_date - 4))
} else if(remain==2){
return(as.character(Datetype_input_date - 5))
} else if(remain==3){
return(as.character(Datetype_input_date - 6))
}

}