ブックマーク / qiita.com/Nabetani (8)

  • Windows の DATE 型 のとても思いがけない仕様 - Qiita

    これはなに? Microsoft の DATE 型のドキュメントの内容が思いがけなさ過ぎて変な声がでるぐらいだったので、この驚きを可視化してシェアしようと思って書いた記事。 その文書 下記リンクがその文書。 びっくりポイントは 日付は、1899 年 12 月 30 日の真夜中を 0 として始まる、整数の増分で表されます。 時間の値は、数値の小数部分の絶対値で表されます。 日付値の整数部分は符号付きとして扱われ、小数部分は符号なしとして扱われる の部分。(強調引用者) 計算して可視化する 文書だとよくわからないので、実際に計算してみる。 #include <iostream> #include <ATLComTime.h> int main() { for (int i = -48; i <= 48; ++i) { auto d = COleDateTime(1899, 12, 30, 0,

    Windows の DATE 型 のとても思いがけない仕様 - Qiita
    koyancya
    koyancya 2023/09/26
    これすごいなw ほぼ踏まないだろうけど、いざ踏んだら憤死しそう
  • 非数をJSONに入れようとするとどうなるか - Qiita

    JSON には非数(NaN)は入れられない。入れられるフォーマットになっていないので仕方ない。 無限大も入れられない。入れられるフォーマットになっていないので仕方ない。 仕方ないんだけど、入れようとしたらどうなってしまうのか、各言語の対応を見ていく。 Ruby まずはソースコード: require "json" def test(e) print( e.inspect, ":" ) begin puts([e].to_json) rescue=>e p e end end test( Float::NAN ) test( Float::INFINITY )

    非数をJSONに入れようとするとどうなるか - Qiita
    koyancya
    koyancya 2019/07/18
  • ruby でこう書くのは、python ならこう書く、のメモ - Qiita

    ruby に慣れていて python に慣れていないんだけど、python を書く機会が増えてきたので備忘録のような感じで。 python は完全に初心者。 python 3。python 2.x のことは気にしないことにした。 手元の処理系 ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16] Python 3.5.2 :: Anaconda 4.2.0 (x86_64) で確認している 長さ ary_len = [1,2,3].size # [1,2,3].length でもいい hash_len = {a:1}.size # {a:1}.length でもいい string_len = "hoge".size # "hoge".length でもいい range_len = (1..9).size # Range#len

    ruby でこう書くのは、python ならこう書く、のメモ - Qiita
    koyancya
    koyancya 2017/03/06
    そうだったのか -> "python は pop にどこから取ってくるかの引数があって、0 を指定すると shift の動きになる。"
  • どう書くで見る ruby の便利機能 - Qiita

    この記事は Ruby Advent Calendar 2016の20日目の記事のつもりで書いている。 Advent Calendar というものに参加するのは初めてなので緊張している。 実務ではあまり ruby を使っていないので、私は自分が主催しているどう書く( https://yhpg.doorkeeper.jp/ )での ruby の使われ方を書こうと思う。 思いついた順なので、ごちゃごちゃするけど気にしない方向で。 Array#transpose 行列ではないものをtransposeできる言語が他にあるかどうか知らないんだけど、transposeは便利。 x方向で処理するプログラムだけを用意しておいて、y方向の処理は、データを transpose したものを渡すことで済ますとか。 あるいは、平面的なものを回転するときに役に立つ。 2次元配列をreverseしてからtranspose

    どう書くで見る ruby の便利機能 - Qiita
    koyancya
    koyancya 2016/12/25
  • `Float::NAN` についての重箱の隅 - Qiita

    以下、ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14] での調査結果。 Float::NAN について知っておくべきこと ruby の Float::NAN は、浮動小数点の非数なので、以下の様な動作になる。 nan=Float::NAN nan==nan #=> false nan==0 #=> false nan<0 #=> false nan<=0 #=> false 0<nan #=> false 0<=nan #=> false 事情を知らないとかなり思いがけない内容だけど、浮動小数点の非数とはそのようなものなので仕方がない。 この、 同じ値を比較しても false になる 大小比較をすると必ず false になる という性質は 浮動小数点の非数がもつ一般的な性質で、ruby に限ったことではない。 これが理由

    `Float::NAN` についての重箱の隅 - Qiita
    koyancya
    koyancya 2016/10/05
    なるほど
  • Groovy なら単純な計算結果がおかしくない。COBOL も(コメント参照)。 - Qiita

    http://qiita.com/hkanda/items/e7c6001e356cfda3d783 を見て書いた。 以下、対話環境での断片と完全なプログラムがごっちゃになっているけど、1.1×2.2 をいろいろな言語でシンプルに書いてみた結果:

    Groovy なら単純な計算結果がおかしくない。COBOL も(コメント参照)。 - Qiita
    koyancya
    koyancya 2016/01/15
    "※ COBOL でどうなるかを示してくださるコメント募集中"
  • ESM オフラインリアルタイムどう書くの問題を解いてみた - Qiita

    def try_sit( chairs, cus ) n=cus[0] pos = 8.times.find{ |x| (x...(x+n)).all?{ |y| chairs[y%8]==0 } } if pos (pos...(pos+n)).each{ |x| chairs[x%8]=1 } cus.shift end end def progress( chairs ) chairs.size.times do |ix| chairs[ix] = (chairs[ix]+1) % 4 if chairs[ix]!=0 end end def solve_impl( chairs, cus ) loop do try_sit( chairs, cus ) return chairs if cus.empty? progress(chairs) end end def solve(s)

    ESM オフラインリアルタイムどう書くの問題を解いてみた - Qiita
    koyancya
    koyancya 2015/10/26
  • ruby の 文字列の連接 - Qiita

    p( "x" "Y" ) #=> "xY" p( "x" 'Y' ) #=> "xY" p( 'x' 'Y' ) #=> "xY" String#+ はどうあがいてもメソッド呼び出しになる(と思う)ので、実行時の効率という点で、文字列の連接は意味がある。その辺りは Java や(たぶん)perl とは事情が違う。 で。 連接の結果がリテラルになるのであって連接自体が何かの操作というわけではないので、括弧は書けない。

    ruby の 文字列の連接 - Qiita
    koyancya
    koyancya 2015/08/15
    まじでかー -> "groovy では文字列の連接のように見えることを書くとメソッド呼び出しになる。"
  • 1