[過去ログ] プログラミングのお題スレ Part15 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
522
(8): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/09/21(土)21:04 ID:BmADEcuL(2/3) AAS
お題: YYYY/MM/DD形式で与えられた西暦年月日の文字列が正しい年月日を表しているかどうか判定せよ。
523
(3): 蟻人間 ◆T6xkBnTXz7B0 2019/09/21(土)21:24 ID:BmADEcuL(3/3) AAS
>>522 >>521の順に解いて下さい。

1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
524
(1): 2019/09/21(土)22:12 ID:y97V3EOz(1/2) AAS
>>522 Perl5

use Time::Piece;
for (<DATA>) {
 chomp;
 my $t;
 eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
 $t //= 'Invalid';
 print "$_: $t\n";
}
__DATA__
省13
525: 524 2019/09/21(土)22:29 ID:y97V3EOz(2/2) AAS
>>524

Time::Piece->strptime は
1900/01/01 よりも前の日付だと
正しい西暦の年月日を入力しても
parse結果が不定となってしまうということがさっき分かりました。
したがって残念ながら>>524のcodeは>>522の題意を満たしているとは
言いがたいものでした。ゴメンね〜
526: 2019/09/21(土)22:37 ID:tuxPF//K(1/2) AAS
>>521-523 Java
https://ideone.com/5XMVPB
540: 2019/09/22(日)11:51 ID:OEThTvH6(2/2) AAS
>>522 >>521 JavaScript
const isValid = seireki => {
let check
try {
check = new Intl
.DateTimeFormat('ja-JP', {year: 'numeric', month: '2-digit', day: '2-digit'})
.format(new Date(seireki))
} catch (e) { return false }
return seireki === check ? true : false
}
省22
541
(3): 2019/09/22(日)14:55 ID:yzO2ACAf(1/4) AAS
>>521-523 Perl5

use Time::Piece; #use Data::Dump 'dump';
@fy = (['2019/05/01', '令和'], ['1989/01/08', '平成'], ['1926/12/25', '昭和'], ['1912/07/30', '大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
 my ($t, $t0, $era, $nen);
 eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
 if ($t and $t->strftime('%Y/%m/%d') eq $_) {
  do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
  if ($t0) {
省19
551: 2019/09/22(日)21:30 ID:WdPSTicU(1) AAS
>>521-523 ruby 2.5.5
https://ideone.com/RLhbll
・令和対応はRuby 2.6.3から
578: 2019/09/27(金)02:44 ID:/3CUbuCi(2/3) AAS
>>522
Kotlin
https://paiza.io/projects/saSW2aaTiVigsU_14uCc-g
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s