プログラミングのお題スレ Part22 (863レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
187: デフォルトの名無しさん [] 2024/01/16(火) 00:33:05.98 ID:n8j0XaXx お題:時刻の文字列が与えられる。その時刻から1秒後の時刻を出力せよ。 例 入力:00:00:00 出力:00:00:01 入力:23:59:59 出力:00:00:00 http://mevius.5ch.net/test/read.cgi/tech/1691038333/187
188: 9 [sage] 2024/01/16(火) 02:37:52.68 ID:SfyAs2IF >>187 Perl5 use Time::Piece; use Time::Seconds; for (qw{00:00:00 23:59:59}) { $t = Time::Piece->strptime($_, '%T') + 1; print "入力:$_\n出力:", $t->strftime('%T'), "\n"; } ※見易くするためインデントを全角スペースに置換してあります 実行結果 ~ $ perl 22_187_1秒後.pl 入力:00:00:00 出力:00:00:01 入力:23:59:59 出力:00:00:00 http://mevius.5ch.net/test/read.cgi/tech/1691038333/188
190: デフォルトの名無しさん [sage] 2024/01/16(火) 20:31:44.73 ID:76+p6SY+ >>187 octave https://ideone.com/CEGEj8 f = @(s) datestr(addtodate(datenum(s), 1, 'second'), 'HH:MM:SS'); in = ['00:00:00';'23:59:59'], out = f(in) http://mevius.5ch.net/test/read.cgi/tech/1691038333/190
191: デフォルトの名無しさん [] 2024/01/16(火) 20:54:27.73 ID:OiJoE8pV >>187 PowerShell "00:00:00", "23:59:59" |% {[String]([DateTime]$_).AddSeconds(1).TimeOfDay} http://mevius.5ch.net/test/read.cgi/tech/1691038333/191
192: デフォルトの名無しさん [sage] 2024/01/16(火) 21:26:50.38 ID:76+p6SY+ >>187 ruby https://ideone.com/y2wgxo require 'time' f = -> s {(Time.parse(s) + 1).strftime('%T')} p ['00:00:00', '23:59:59'].map {|s| [s, f.(s)]} http://mevius.5ch.net/test/read.cgi/tech/1691038333/192
193: デフォルトの名無しさん [sage] 2024/01/16(火) 23:32:13.09 ID:+Emu7d1R >>187 js const decode = (s) => s.split(":").map(Number); const encode = (nums) => nums.map((v) => String(v).padStart(2, "0")).join(":"); const inct = (s, sec = 1) => { const a = decode(s); const ss = [ { n: a[0], max: 24 }, { n: a[1], max: 60 }, { n: a[2], max: 60 }, ]; let up = sec; const b = ss .reverse() .map(({ n, max }) => { n += up; up = Math.floor(n / max); return n % max; }) .reverse(); return encode(b); }; console.log(inct("00:00:00"));// 00:00:01 console.log(inct("23:59:59"));// 00:00:00 console.log(inct("00:00:00", 100));// 00:01:40 http://mevius.5ch.net/test/read.cgi/tech/1691038333/193
194: デフォルトの名無しさん [sage] 2024/01/17(水) 00:04:27.61 ID:g7dwo5vO >>187 ocaml https://ideone.com/aEsvl6 let sec_of_hms hms = let at i = int_of_string (String.sub hms i 2) in at 0 * 60 * 60 + at 3 * 60 + at 6 let hms_of_sec sec = Printf.sprintf "%02d:%02d:%02d" (sec mod 86400 / 3600) (sec mod 3600 / 60) (sec mod 60) let (<<) f g x = f (g x) let f = hms_of_sec << (+) 1 << sec_of_hms http://mevius.5ch.net/test/read.cgi/tech/1691038333/194
195: デフォルトの名無しさん [sage] 2024/01/17(水) 01:45:50.10 ID:xvgJymQe >>187 Rust (date/timeライブラリ不使用版) fn next_time(cur: &str) -> String { let [sec, min, hour] = cur .rsplitn(3, ':') .map(|s| s.parse().unwrap()) .zip([60, 60, 24]) .scan(1, |carry, (mut value, limit)| { value += *carry; (*carry, value) = if value == limit { (1, 0) } else { (0, value) }; Some(value) }) .collect::<ArrayVec<_, 3>>()[..] else { unreachable!() }; format!("{hour:02}:{min:02}:{sec:02}") } fn main() { assert_eq!(next_time("00:00:00"), "00:00:01"); assert_eq!(next_time("23:59:59"), "00:00:00"); } http://mevius.5ch.net/test/read.cgi/tech/1691038333/195
196: 17 [] 2024/01/18(木) 03:01:51.54 ID:opxINJAy >>187 Kotlin Java のライブラリそのまま使ってるだけの怠惰なプログラム https://paiza.io/projects/76gN3OCL93cAj7qXnNlyIA http://mevius.5ch.net/test/read.cgi/tech/1691038333/196
197: 17 [] 2024/01/19(金) 19:43:44.34 ID:hxZRcaHh >>187 Kotlin 今度は Java のライブラリは使わずに時分秒を保持するクラスを自分で作ってそこで秒に足すとか文字列にするとかやるようにした。 https://paiza.io/projects/7YcPDBTxVFt9EVczvBJ8gQ http://mevius.5ch.net/test/read.cgi/tech/1691038333/197
198: デフォルトの名無しさん [sage] 2024/01/20(土) 23:08:19.98 ID:PCaU0wMN >>187 dart 2.3.0 https://ideone.com/khq9gr void main() { var sec_of_hms = (hms) => hms.split(':').fold(0, (acc, s) => acc * 60 + int.parse(s)); var hms_of_sec = (sec) => [sec % 86400 ~/ 3600, sec % 3600 ~/ 60, sec % 60].map((x) => x.toString().padLeft(2, '0')).join(':'); var f = (hms) => hms_of_sec(sec_of_hms(hms) + 1); print(f('00:00:00')); print(f('23:59:59')); } http://mevius.5ch.net/test/read.cgi/tech/1691038333/198
199: デフォルトの名無しさん [] 2024/01/21(日) 17:06:46.39 ID:BpmEGVkv >>187 c++ https://mevius.5ch.net/test/read.cgi/tech/1434079972/124 http://mevius.5ch.net/test/read.cgi/tech/1691038333/199
200: デフォルトの名無しさん [] 2024/01/21(日) 21:15:52.66 ID:BWkvMixc >>187 c https://ideone.com/wRIYl2 int hmstosec(const char *hms) { int h, m, s; return sscanf(hms, "%d:%d:%d", &h, &m, &s) == 3 ? h * 3600 + m * 60 + s : 0; } char *sectohms(char *buff, int sec) { sprintf(buff, "%02d:%02d:%02d", sec % 86400 / 3600, sec % 3600 / 60, sec % 60); return buff; } char *f(char *buff, const char *hms) { return sectohms(buff, hmstosec(hms) + 1); } >>187 c https://ideone.com/3gj90n int hmstosec(const char *hms) { #define _(i) ((hms[i] - '0') * 10 + (hms[i + 1] - '0')) return _(0) * 3600 + _(3) * 60 + _(6); #undef _ } char *sectohms(char *buff, int sec) { #define _(i, value) buff[i] = '0' + (value) / 10, buff[i + 1] = '0' + (value) % 10 return _(0, sec % 86400 / 3600), buff[2] = ':', _(3, sec % 3600 / 60), buff[5] = ':', _(6, sec % 60), buff[8] = '\0', buff; #undef _ } char *f(char *buff, const char *hms) { return sectohms(buff, hmstosec(hms) + 1); } http://mevius.5ch.net/test/read.cgi/tech/1691038333/200
201: デフォルトの名無しさん [] 2024/01/22(月) 15:47:46.18 ID:PT6/fzaV >>187 lisp https://ideone.com/J8xIVN http://mevius.5ch.net/test/read.cgi/tech/1691038333/201
202: デフォルトの名無しさん [sage] 2024/01/23(火) 20:39:51.43 ID:8rvcqFQo >>187 gawk https://ideone.com/zBy22y BEGIN {FS=":"} {print strftime("%T", mktime(sprintf("2024 01 23 %s %s %s", $1, $2, $3)) + 1);} >>187 sqlite https://ideone.com/fjEdMz select time('00:00:00', '+1 second'); select time('23:59:59', '+1 second'); >>187 bash https://ideone.com/pYf8vL while read hms; do date '+%T' --date="+1 seconds $hms" done http://mevius.5ch.net/test/read.cgi/tech/1691038333/202
203: デフォルトの名無しさん [sage] 2024/01/23(火) 22:56:23.02 ID:8rvcqFQo >>187 pascal https://ideone.com/sprmCC program ideone; Uses sysutils, dateutils; function f(hms : string) : string; begin f := TimeToStr(IncSecond(StrToTime(hms), 1)) end; begin writeln(f('00:00:00')); writeln(f('23:59:59')); end. http://mevius.5ch.net/test/read.cgi/tech/1691038333/203
204: デフォルトの名無しさん [sage] 2024/01/23(火) 23:54:34.15 ID:39Fs96AV >>187を時間ライブラリ無しで作成できている言語は現時点で 193のJavaScript 194のOCaml 195のRust 197のKotlin 198のDart 199のC++ 200のC 201のLisp 以上 http://mevius.5ch.net/test/read.cgi/tech/1691038333/204
205: 17 [] 2024/01/24(水) 00:08:17.22 ID:n4ooUyFj >>187 Perl bashのコマンドラインから長い長いワンライナーで。 $ perl -ne 'if(/(\d+):(\d+):(\d+)/){$h=$1;$m=$2;$s=$3;printf"入力:%02d:%02d:%02d\n",$h,$m,$s;$s++;if($s>=60){$m++;$s=0;if($m>=60){$h++;$m=0;if($h>=24){$h=0}}}printf"出力:%02d:%02d:%02d\n",$h,$m,$s}' 1:2:3 入力:01:02:03 出力:01:02:04 0:0:0 入力:00:00:00 出力:00:00:01 23:59:59 入力:23:59:59 出力:00:00:00 $ http://mevius.5ch.net/test/read.cgi/tech/1691038333/205
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s