プログラミングのお題スレ Part19at TECHプログラミングのお題スレ Part19 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト1014:デフォルトの名無しさん 21/06/12 22:24:48.19 RadmeEVr.net お題 年月と第何曜日が入力されます その日付を出力してください 入力: 2021-07,第3月曜日 出力: 2021-07-19 1015:デフォルトの名無しさん 21/06/13 00:00:30.76 EAgJhZrv.net >>983 Ruby def s2d( str ) return '' unless /(\d+)-(\d+),第(\d+)(.)曜日/ =~ str tm = Time.new( $1.to_i, $2.to_i, 1, 12 ) ( tm + 86400 * ( $3.to_i * 7 - 7 + ("日月火水木金土".index($4) - tm.wday) % 7 ) ).strftime( '%F' ) end puts s2d( '2021-07,第3月曜日' ) #=> 2021-07-19 閏秒やサマータイムを挟んでもおそらく問題ない 1016:デフォルトの名無しさん 21/06/13 00:26:28.82 FnAquiwp.net JS const f = (x) => { let [p,q] = x.split(","); let days = {日:0,月:1,火:2,水:3,木:4,金:5,土:6}; let nth = q.match(/\d/)[0]*1; let day = (r=>{ for (let [k,v] of Object.entries(days)) { if (q.includes(`${k}曜日`)) {return v}} })(q) let i = 1; while (i<32) { if (new Date(`${p}/${i}`).getDay()!=day) {i++;} else if (nth != 1) {i+=7; nth--;} else {break} } return new Date(`${p}/${i}`).toLocaleDateString(); } やっつけ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch