Ruby 初心者スレッド Part 62

レス数が900を超えています。1000を超えると表示できなくなるよ。
2017/11/24(金) 00:35:29.31ID:rLZHdQ3Q
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 61
https://mevius.5ch.net/test/read.cgi/tech/1503644351/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
2018/03/15(木) 19:28:59.60ID:tIXtXy4E
RubyでDBを扱う場合、プロダクションで使われているのは世界で唯一ActiveRecordのみ
2018/03/15(木) 21:18:59.56ID:OYGfq7D7
インターフェースじゃん。
バックでmysqlとか動いてるぞ。
いいからちゃんと勉強しろよ。
2018/03/15(木) 21:31:02.48ID:rmXeLovx
>>839
ライブラリで答えてください
2018/03/15(木) 23:24:57.24ID:xG9lbsTH
>>837
ActiveRecordが大半なのは間違いない

ORMを求めてるならsequel、rom、hanami等
素のDBライブラリならmysql2, sqlite3-ruby, ruby-pg
ArelでSQLを構築してDBライブラリ使ってSQL実行してもいい
842デフォルトの名無しさん
垢版 |
2018/03/16(金) 15:24:05.43ID:3ma6aQHv
sqlite3
2018/03/16(金) 18:23:28.28ID:2Gd98HT2
>>839
Rails屋がSQLすら書けなさそうに見えて腹立つのは分からんでもないけど、今はDBインターフェースの話しかしてないぞ
2018/03/16(金) 23:22:04.16ID:yiSYhWxU
「Node.js超入門、掌田津耶乃、2017」を読んでいるけど、JavaScript の基本は、Ruby

Ruby のSinatra, JS のNode.js を、full scratch で書くと、ほぼ同じ

Rails, JSのExpress + Bookshelf が、ほぼ同じ
2018/03/16(金) 23:24:51.12ID:3NuYtiCt
掌田津耶乃ってダメな本じゃなかったか?
846844
垢版 |
2018/03/17(土) 00:05:48.37ID:nxO/ldT7
プログラミング本では、掌田が第一人者。
Unity, UE4 などのゲームエンジンから、最近は、Python, Node.js にも進出

売れる・成長する分野には、必ず掌田が参入してくる。
業界の風見鶏

「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails を学ぶ方が簡単。
20時間ほどで読める

後は、YouTube の動画で、OK
2018/03/17(土) 00:10:02.58ID:6ii9LbbD
やっぱ掌田津耶乃ってだめな人だった
調べたらわかったよ
2018/03/17(土) 00:34:45.99ID:4Xu/HAYS
今の時代、開発速度が速すぎて誰も良い本なんか書けないよ
それを書き終わる頃には時代遅れになってるんだから
2018/03/17(土) 00:38:04.22ID:6ii9LbbD
いや掌田がとりわけレベル低いだけ
2018/03/17(土) 01:55:30.84ID:+wQGtQt+
掌田津耶乃はだめな本
山田 祥寛は良い本

という評価が一般的
掌田津耶乃は何冊か読んでいるけど、
見比べてみるとたしかにダメダメなんだなぁ。
2018/03/17(土) 02:08:55.36ID:6ii9LbbD
山田 祥寛もダメだろ
2018/03/17(土) 05:35:09.75ID:77P/HBnW
掌田津耶乃はHyoerTalkなまりのコード
2018/03/17(土) 09:18:19.49ID:nxO/ldT7
最近は、Python にも、なでしこの作者・クジラ飛行机、
大津真、掌田も、乗り込んできた

この辺は、売れ筋には参入してくる著者

中でも掌田は、ゲームエンジン・言語・Javaのフレームワーク・Node.js など万能
854デフォルトの名無しさん
垢版 |
2018/03/17(土) 12:59:20.73ID:OC0Ef+g3
またあらぶっとるんか糞荒らし
はやくRubyコミュで発言しろよ屑
2018/03/17(土) 14:32:15.41ID:+wQGtQt+
要はね
掌田の出版本を見てみるとわかるが、
初心者を食い物にしている
初心者専用の作者なわけよ、

だからレビューとかで
表面だけかじって書いたかのような本とか
書かれちゃうわけよ。

深く知りもしないであれだけの数の本を書けるわけないよね。
だから掌田はおすすめできないんだわ。

初心者にはいいかもしれないよ?
初心者向けの本ばかり何冊も何年も書き続けているから。
2018/03/17(土) 15:47:30.97ID:uAf5LbgY
商売としては全然アリだね
とっかかりが欲しい初心者いるだろうし
857デフォルトの名無しさん
垢版 |
2018/03/17(土) 16:43:12.02ID:cWw1OMJa
>>855
ほんそれ
858844
垢版 |
2018/03/17(土) 19:43:45.96ID:nxO/ldT7
デザインもカラフルで、図解してあるから、すごくわかりやすい。
売れるから、こういう外注予算が大きい

オライリーでは、図解・デザインは無いから、読むのに時間が掛かる。
図解は視覚だから、瞬時に理解できるけど、
言葉の説明だと、それを図に置き換えて、考えないといけないから大変

掌田の本は、ものすごく短時間で理解できるから、効率的。
すごく消化・吸収に良いし、
時間も節約できるから、時給換算すれば大得

漏れには、時間が掛かる・細かい・理解できない、100の知識はいらない。
短時間で、よくわかる、50の基礎知識がさえ有ればよい。
あとは動画を見て、応用するから

「Node.js超入門、掌田津耶乃、2017」
この本で、Sinatra, Rails が分かる

「10日でおぼえる jQuery 入門教室 第2版、山田祥寛(よしひろ)、2013」
この本で、Nokogiri が分かるのと同じ

本が出ていない場合とか、難しい本しかない場合に、非常に役に立つし、速い
2018/03/18(日) 09:45:02.22ID:JzaiKxSG
>>855
食い物とか、被害妄想凄いな。
お前さんがもっとマシな解説ブログでも開いたら?w
2018/03/18(日) 12:36:10.41ID:Gg1K6bSi
>>859
頭使ってる?
掌田津耶乃が何冊初心者用の本を出しているか知っている?
ちょっと考えれば、
英語、ドイツ語、フランス語の言語学習の本を書いたとしたら
その言語のことをどこまで知っていて本を書いているんだろうとか気にならないの?
もし気にならないんだったら、表面的な知識だけで満足しているお前とは合わないのでバイバイ ノシ

Amazon.co.jp: 掌田 津耶乃:作品一覧、著者略歴
https://www.amazon.co.jp/%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/e/B004L5AED8/ref=sr_tc_2_0?qid=1521344021&;sr=8-2-ent
掌田津耶乃(しょうだつやの)。ほぼ男性。テクニカルライター兼3流プログラマ。

自分でも3流プログラマと認めているのに、まったく信者って奴は・・・
2018/03/18(日) 12:52:44.19ID:QAeUSVF3
こんなスレがあったで

掌田津耶乃って何者? (Late 2012)
https://anago.5ch.net/test/read.cgi/mac/1349360916
2018/03/18(日) 12:55:57.40ID:QAeUSVF3
基本的に流行ってるものを、ざっと調べてまとめただけなんだろうな
だから初心者レベルのところまでしか書けない
概要を知るところまでで、あれを参考にしてコードを書いてはいけない
2018/03/18(日) 16:36:38.11ID:Aq9RvNC1
HypaerCardの本も出してたから もう30年以上初心者向けの本出してるベテラン 
2018/03/18(日) 19:04:35.10ID:Pu83I0V3
Amazonのレビューでよく思うけど、海外の人は褒めるのが上手。いい面を見てる
日本人は100点じゃなきゃ糞みたいな心の狭い人が多い
初心者向けの本なんかにケチつけなくてもいいだろうに
今は公式サイトのドキュメントが充実してる時代なんだから、ほぼ公式くらいのことしか書かんだろうよ
2018/03/18(日) 19:43:48.34ID:Gg1K6bSi
そうだな、ネイティブと喋れない、英検準2級、TOEIC500点ぐらいの人が教えているって感じ。
そんなイメージが掌田津耶乃さん。
2018/03/18(日) 20:16:15.41ID:i3culXas
ご尊顔
http://interview-bookscan.s3-ap-northeast-1.amazonaws.com/newimg/interview_178_index.png
2018/03/18(日) 21:55:23.04ID:JzaiKxSG
>>860
いや長文必死にならなくても、お前さんが自分で解説するだけの知力すら無いってのは分かったから。
2018/03/18(日) 21:59:08.72ID:QAeUSVF3
なんで作者本人が自分で三流ですって言ってるのに、
他人が三流であると解説する必要があるんだ?
2018/03/18(日) 23:16:11.58ID:Gg1K6bSi
>>867
自己紹介乙
870デフォルトの名無しさん
垢版 |
2018/03/18(日) 23:24:43.53ID:JFJ3EKTR
Java, Ruby のフレームワークを書ける人は、少ない。
山田祥寛(よしひろ)、掌田津耶乃、宮本信二、黒田努など

山田は会社向けの、1日4万円の講座などを開いている

一方、掌田は初心者向け。
Unity, UE4 などのゲームエンジン、
Python などの売れ筋言語、
Spring などのJavaのフレームワーク、
Node.js + Express などのJavaScript のフレームワークなど、万能

山田は会社員、掌田は初心者と、ターゲットが異なる。
もし、同じターゲットなら、両雄並び立たずで、共倒れするから
871デフォルトの名無しさん
垢版 |
2018/03/18(日) 23:54:42.62ID:3ZuC3w8U
自演注意
自演注意
自演注意
2018/03/19(月) 04:32:11.24ID:csFbH6Mx
File.open('test.txt', 'r+') do |io|
text = io.read
io.rewind

io.write 'あ'
p io.pos #=> 3

io.truncate io.pos
end

読み書き両用ファイルの、ファイルサイズを減らして、上書きできた

io.rewind で、ファイルポインタを先頭に巻き戻す。
io.truncate io.pos で、現在のファイルポインタの位置で、ファイルを切り詰める
2018/03/20(火) 23:14:51.84ID:QfE06Qcj
>>869
反論すら出来ない奴は、つまらんね。
2018/03/21(水) 00:56:42.17ID:p8DsWgGG
変なこと聞くけどさ、rspecでさ、まあ適当にサンプル書くけど

describe "hoge do
 before do
  ・・・
 end

 context do
  let(:a) { 1 }
  ・・・
  it 'hage' do
   expect(a).to be 1
  end
 end
end

コレに限った話じゃなくて、rspecの使い方で内側のブロック(例えばitの中)から
外側のブロック(例えばcontextの中)の状態(例えば変数)を
書き換えるのを禁止にしても何の問題もないよね?もちろん参照するのはOK。
テストはどう有るべきかを考えたら、むしろそうした方が良いぐらいじゃないかって思うんだけどどうかな?
2018/03/21(水) 01:22:34.72ID:qUqb4QSc
ネストしたcontextで
内側のcontextが外側のcontextで設定した状態を
書き換えるような形でテストを書いても別にいいと思うけどな
2018/03/21(水) 01:57:04.18ID:p8DsWgGG
>>875
でもそうするとテストケース一つとか実行した時におかしくならない?
2018/03/21(水) 04:11:05.87ID:rJLoGwxo
>>873
自己紹介乙
878デフォルトの名無しさん
垢版 |
2018/03/21(水) 07:02:14.53ID:wxFTzoek
外部への依存が少なければ、個々のテストの独立性が高いから、
バグが減るし、テストを並行実行できる

それが理想だけど、実現するのは難しそう
2018/03/21(水) 16:09:18.41ID:qUqb4QSc
>>876
おかしくならないよ
let(:a) { 2 }とかで上書きしてみればわかるでしょ
2018/03/21(水) 16:22:28.39ID:p8DsWgGG
>>879
上書き?
letは新たにローカル関数を作るようなもので
親ブロックのaを上書きなんかしてないよ
2018/03/21(水) 16:24:44.94ID:qUqb4QSc
>>880
それ分かってるんなら
何がおかしくなると思ってるの?
2018/03/21(水) 16:47:19.64ID:p8DsWgGG
>>881
内側のブロックで外側のブロックの変数に値を入れた場合だよ
883デフォルトの名無しさん
垢版 |
2018/03/30(金) 15:22:33.47ID:87KFZNYL
Chrome 65 になったら、selenium webdriver が動かなくなったので、
chrome driver 2.37 を、ダウンロードしてみた

これで動くかどうかは、まだ試してないけど
884883
垢版 |
2018/03/30(金) 20:31:06.53ID:87KFZNYL
新しいバージョンの、chrome driver にしたら動いた
2018/04/01(日) 16:44:40.27ID:0KaYXtgi
すみません、質問があります。
他人様の書いたコードを読んで写経しながら勉強していた所、
begin
#何らかの処理A(特に例外を出しそうな処理ではない)
end until hoge

という記述があったのですが、この書式の意味というか意図がいまいちつかめなくて困っています。
自分でコードを書いて試してみた所、この記述はhogeがtrueでもfalseでも処理Aを実行しており、
特に「until hoge」の部分で何を制御したいのかがわかりません。

(begin
#処理
end) until hoge

例えば、↑の書き方だと単純なuntil文の後置修飾になるので意味がわかるのですが、
上述のような書式で書く理由や、こう書くとどういうメリットがあるかを教えていただけますと嬉しいです。
よろしくお願いいたします。
2018/04/01(日) 16:51:30.58ID:1KgD14Zs
(と)の二文字省略できる
2018/04/01(日) 17:15:27.40ID:9myXjpPz
>>885
下のAとBは同じことをするんだけど、Aだと1行目と4行目が同じでもやっとするのでBのように書いているのでは
個人的にはbegin〜endをメソッドにしてこうは書かないけど
begin〜end untilのほかにもbegin〜end whileも同様

# A
i = Time.now.sec
until i % 3 == 0
p i
i = Time.now.sec
end

# B
begin
i = Time.now.sec
p i
end until i % 3 == 0
2018/04/01(日) 17:18:46.83ID:9myXjpPz
訂正

# A
i = Time.now.sec
p i
until i % 3 == 0
i = Time.now.sec
p i
end

# B
begin
i = Time.now.sec
p i
end until i % 3 == 0
2018/04/01(日) 17:32:20.95ID:0KaYXtgi
>>887-888
ご回答頂きどうもありがとうございます。
なるほど、この書式だとbegin~end内の処理が1回は必ず実行されて、
その後に条件文で判定されるようになるので、同じ処理(例だと代入処理)を2度書かなくて済むようになるんですね。

とても勉強になりました。

個人的にはコード行数が増えたり同じ処理が連続するよりも、
ひと目で意図する処理が他人に伝わらないのはちょっと嫌なのでこの書き方は真似しないようにします……。
2018/04/01(日) 17:40:44.12ID:KXX7rc47
いや、それはおかしい。
リトライやリドゥーみたいな処理で、必要であれば、ためらわずそう書くべき。多少わかりにくくても。
いずれ慣れるから。

なんなら、先頭にコメントをつけとけば。
2018/04/01(日) 17:57:12.31ID://EuH1G7
絶対的なルールではないけどこんなものもあるんで参考までに

ruby-style-guide
>後判定ループの場合、begin/end/untilやbegin/end/whileより、
>break付きのKernel#loopを使いましょう。
https://github.com/fortissimo1997/ruby-style-guide/blob/japanese/README.ja.md#user-content-loop-with-break
2018/04/01(日) 18:00:28.18ID:ZcGM330i
(なにかしら).method

do
なにかしら
end メソッド


みたいなもんだからRuby規則に沿っているだろ
2018/04/01(日) 18:17:17.82ID:A31P7FUz
>>891
後判定ループを行うのにbegin-end-while/untilが好ましくない理由を俺に教えて欲しい
2018/04/01(日) 18:21:45.55ID:hwmab9Mq
>>893
英語的にキモいからだろ
end until ってさすがに非ネイティブの俺でも不自然に感じるぞ
2018/04/01(日) 18:27:29.70ID:Aa3HndXz
英語的な自然さを求めるなら、loopをendのエイリアスということにして loop while/until かな
VBがそんな感じだったはず
まあジャップ製言語だから仕方ないね
2018/04/01(日) 18:31:46.49ID://EuH1G7
>>893
beginの中が長いと上から読んでてループするんだかrescueするんだかわかりにくいからじゃない?
ruby-style-guideはコメントを極力書かないで済むようにするのが目的の一つだから
まあ個人的には首肯しかねるルールもいくつかあるけどね
2018/04/01(日) 18:43:23.68ID:hwmab9Mq
>>896
それもあるね
日本人からすると「〜〜(長い長い手続き)〜〜をループさせろ」は自然な流れだけど、
向こうの人からすると「結論から話せやファッキンジャップ」だろうな
2018/04/01(日) 21:03:13.03ID:A31P7FUz
>>896
ああ、なるほど
そういう観点だったのね
ありがとう
2018/04/02(月) 12:57:38.84ID:g/2XFKpH
ブロッキング条件なら後に来るの自然に感じる
長過ぎるとってのはどんなブロックでも同じ
2018/04/02(月) 13:03:59.66ID:KugB3K+A
SV
これは第一文型なんだから
文章.method
SをVするで普通の英語じゃん?
2018/04/02(月) 13:11:22.76ID:6hj+x7xd
おいおい…
「を」は対格を作る格助詞だぞ。
記号で書くとV(=verb=動詞)O(=object=目的語)だ。
SVは
S(=subject=主語)V(=verb=動詞)で、
S「が」Vする、だ。
2018/04/02(月) 13:22:58.60ID:g/2XFKpH
自然言語なんて例外だらけなんだからどうでもいい
2018/04/02(月) 13:41:31.43ID:eDlvSPE1
sendを使う度にモヤモヤした気持ちになる
2018/04/02(月) 14:10:59.70ID:HZoT/r0A
それより>>894だろうな
begin〜end系言語で結びにend whileなんて書くのrubyくらいじゃないか?
たいてい>>895みたいにendを別の単語に変えてる
2018/04/02(月) 18:13:06.38ID:TBzY9DYT
そりゃそもそもend書かせる主流言語が少ないし
906デフォルトの名無しさん
垢版 |
2018/04/03(火) 03:47:06.97ID:hZewAlsv
>>889
同じ処理を、別の場所に2回書くと、

修正時に、2か所とも修正しないといけないから、
どちらかを修正し忘れる事があるので、危険
2018/04/03(火) 04:10:23.05ID:8HWTUUN8
Donot
Repeat
Yourself
2018/04/03(火) 23:32:43.51ID:q2DveEBR
Do
Repaet
Yourself
909デフォルトの名無しさん
垢版 |
2018/04/04(水) 02:02:25.22ID:h2UR4/YM
Reuse
Reduce
Recycle
Ruby
910デフォルトの名無しさん
垢版 |
2018/04/05(木) 14:25:03.13ID:eFdDptlj
selenium-webdriver で、Chrome のHeadless mode で、
5ch の投稿者名・書き込み内容を、抜き出してみた

driver.navigate.to "https://mao.5ch.net/test/read.cgi/linux/1479499953/8-9";

elements = driver.find_elements(:css, 'div[data-id]')

elements.each do |elem|
str = elem.attribute('data-id') + ' 投稿者 :'

# CSS では、コンテキストの直下を表現できないので、xpath を使う
# str += elem.find_element(:css, '> div.meta > span.name').text
str += elem.find_element(:xpath => "div[@class='meta']/span[@class='name']").text
puts str

str = '内容 :'
str += elem.find_element(:xpath => "div[@class='message']/span").text
puts str
end
2018/04/07(土) 05:31:34.17ID:Cc4pa2fK
三ヶ月在れば一つのプログラム言語を習得しアプリケーションを作ることが出来るw
https://mevius.5ch.net/test/read.cgi/win/1504394535/9

おいらは習作はしない、他愛ないことはやらないのだ
https://mevius.5ch.net/test/read.cgi/win/1503735829/881-883

C#なんてのはVZの開発環境にないwww
https://mevius.5ch.net/test/read.cgi/win/1520923324/913

ワロタ、ワロタ
https://echo.5ch.net/test/read.cgi/win/1467974448/129-132
2018/04/08(日) 14:20:42.12ID:JYaIVkeP
10年以上前に学校でスクリプト言語を勉強してたときはPHPが流行ってて
Perlもあったけど少し古いかなって感じ。ただとにかくJAVAが騒がれててJSP+tomcatなんかもやったな。
Rubyはあったけどそんなに話題にならず。
で最近、またスクライピングがやりたくて色々調べたら
もうPHPも下火?でRubyとpythonとかいう言語が主流みたいですね。
913デフォルトの名無しさん
垢版 |
2018/04/08(日) 15:16:13.15ID:nkM5b3tX
Rubyは主流じゃない
2018/04/08(日) 16:26:08.93ID:ikNNlzZg
PHPが下火でRubyが主流がねーわ。
人気を捏造しないと好きな言語も恥ずかしくて使えないのか軟弱者め。
たとえ世界の全てが使わなくても自分だけはRubyを使い続けるという気概を持てよ情けない奴
2018/04/08(日) 17:41:41.41ID:mE+8rAwy
2ch/5chでは、日本人が作ったというだけで、だめ扱いする書き込みがあるから
注意すべし。どこかぞの国から書き込まれている事がある。
916デフォルトの名無しさん
垢版 |
2018/04/09(月) 11:49:58.15ID:M/BmQ9Z1
以下の半角空白区切りの行から、稼働時間を求めるには、どうやるの?
夜、24:00 以上の数字もあります

2018/09/09 09:45-24:00
2018/10/10 23:00-27:15
2018/04/09(月) 12:21:03.03ID:2h6IFanV
>>916

date = "2018/09/09 09:45-24:00"
m = date.match(/(\d\d):(\d\d)-(\d\d):(\d\d)/)[1, 4].map(&:to_i)
min = (m[2] - m[0])*60 + m[3] - m[1]
p "%d:%d" % min.divmod(60) # => "14:15"
918916
垢版 |
2018/04/09(月) 13:15:44.73ID:M/BmQ9Z1
ありがとう

Date, DateTime, Time などの形で、引算で求められませんか?
2018/04/09(月) 13:42:09.51ID:2h6IFanV
date = "2018/09/09 09:45-24:00"
m = date.match(%r!\A(?<year>\d{4})/(?<month>\d\d)/(?<day>\d\d) (?<begh>\d\d):(?<begm>\d\d)-(?<finh>\d\d):(?<finm>\d\d)\z!)
beg = Time.new(m[:year], m[:month], m[:day], m[:begh], m[:begm])
fin = Time.new(m[:year], m[:month], m[:day], m[:finh], m[:finm])
min = (fin - beg)/60
p "%d:%d" % min.divmod(60) # => "14:15"
920916
垢版 |
2018/04/09(月) 14:17:26.06ID:M/BmQ9Z1
ありがとう

24:00 では、Time インスタンスを作れるけど、
27:15 では、エラーで作れなかった

回避策を考えてみます
921デフォルトの名無しさん
垢版 |
2018/04/09(月) 14:23:48.18ID:GdkyYm9A
pythonスレにマルチするのやめれ
2018/04/09(月) 14:39:12.15ID:2h6IFanV
>>920

date = [
"2018/09/09 09:45-24:00",
"2018/10/10 23:00-27:15"
]
begfin = lambda do |m|
d = Time.new(m[:year], m[:month], m[:day])
[[m[:begh], m[:begm]], [m[:finh], m[:finm]]].map { |hour, min|
3600 * hour.to_i + 60 * min.to_i
}
end
date.each do |d|
m = d.match(%r!\A(?<year>\d{4})/(?<month>\d\d)/(?<day>\d\d) (?<begh>\d\d):(?<begm>\d\d)-(?<finh>\d\d):(?<finm>\d\d)\z!)
beg, fin = begfin[m]
min = (fin - beg)/60
puts "%d:%d" % min.divmod(60) # => "14:15"
end
# =>
14:15
4:15

ってマルチかい
923916
垢版 |
2018/04/09(月) 15:24:13.18ID:M/BmQ9Z1
python スレの書き込みとは別人。
ID も異なるはず

その書き込みを見て、Ruby ではどうプログラミングするべきか、考えてみたが難しかった
2018/04/09(月) 15:46:38.36ID:aj6Oy7j8
「ruby 24」検索

Ruby で 24 時超えの時間を楽ちんにパースする方法 - Qiita
https://qiita.com/ruzia/items/5e2cae142479b8a5c364
925916
垢版 |
2018/04/09(月) 16:17:52.99ID:M/BmQ9Z1
d = Time.new(m[:year], m[:month], m[:day])
d_next = d + 60 * 60 * 24

24時以上の場合は、hour から24を引いて、1日足すけど、これはややこしい
2018/04/09(月) 21:36:13.46ID:0VIzl/J9
クソコードばっかりだなw
2018/04/09(月) 22:04:45.24ID:cXk52I1j
25以上の数字の入力を許している次点でクソコード。
928916
垢版 |
2018/04/10(火) 00:28:34.01ID:oEQHPFsL
表計算ソフトなどで、時間管理していると、こういう表記もある。
2018/10/10 23:00-27:15

上を一旦、変換して
2018/10/10 23:00-24:00
2018/10/11 00:00-03:15

これも、1日足すのも結構、難しい。
Date, DateTime に変換してから、1日足さないと、月末・うるう年などで、バグる

>>925
>d_next = d + 60 * 60 * 24
これで1日足すのも、うるう秒の時が、どうなるか不安
2018/04/10(火) 00:34:12.01ID:PJbB3F/q
時刻じゃなくて時間を表すクラスが欲しくなるな
2018/04/10(火) 01:03:05.44ID:TtMX4ea2
24,60,60進法による演算ということね
2018/04/10(火) 03:53:20.97ID:gEpzqPRo
時間は最重要項目なんだから
完璧なライブラリとか無いのかな?
2018/04/10(火) 08:52:25.96ID:OCO/nUgk
RubyのDateTimeは充分以上だよ。
日付を増減するときは、それ時分秒の値はさわらずに、めんどくさくても日の値を変更すればいい。
2018/04/10(火) 08:58:36.32ID:wPoJQnkn
じゃあエポックタイムで十分だな。めんどくさくても計算すればいい。
2018/04/10(火) 09:31:38.98ID:Pta2sQP4
DateTimeは完璧なライブラリだから24時以降はRangeErrorになる
完璧な仕様だ
2018/04/10(火) 09:55:10.36ID:wPoJQnkn
rubyの不便はいい不便
2018/04/10(火) 17:47:37.08ID:yDOt+2aU
rubyに不便なんてないぞ
何を言ってんだ
2018/04/10(火) 18:25:57.56ID:6CkCb20Q
えーっ、そんなこといちいち書かなきゃいけないのw?rubyなら組込メソッドで一発だよwww
「時間は?」
       ____
    /      \
   /  ─    ─\
 /    (●) (●) \ 必要ない。計算すればいい
 |       (__人__)    |
 \     ` ⌒´   /
,,.....イ.ヽヽ、___ ーーノ゙-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況