カレンダー

2020/10
    
262728293031
       

広告

Twitter

記事検索

ランダムボタン

ニョロとニョロ

by 唐草 [2020/10/01]



 書いていたプログラムが、予想しない場所でエラーを出した。
 そのプログラムは「9/29〜12/16」のような見慣れた形式で書かれた日付の範囲をUNIXタイムスタンプ(1970/1/1 00:00:00からの経過秒数)に直すもの。人に読みやすい形式はコンピュータには扱いにくいのだ。
 目玉機能は「9/29〜1/21」のようなに年をまたいでも処理できるという細やかな気遣いにある。開始日より終了日が小さければ年をまたいでいるということは、人の目には明らか。コンピュータにしてみれば、月と日しか与えられていないので単純な処理だと今年の日付として認識してしまう。やっぱり、人に読みやすい形式はコンピュータには扱いにくい。
 ぼくがテストのために用意した架空の日程はすべて正常にタイムスタンプになった。これなら本番に投入しても大丈夫だろう。先日メールで受け取ったデータを自信満々でプログラムへ読み込ませた。
 そうしたら「日程の範囲が記述されていない」というエラーが出てしまった。
 エラーの内容からして入力データに問題があることは間違いなかった。自分で書いたプログラムなので、そこだけは自身がある。だが、穴が空くほど入力データを眺めても問題を見つけることはできなかった。
 記述形式がおかしい部分があるのかも知れないと「〜」で検索して、初めて原因が分かった。
 入力ファイルの日付は「~」で区切られているのに対して、ぼくは日付を「〜」で区切っていた。
 いったい何を言っているのかサッパリわからないだろう。人間の目には区別のつかない大きな違いがあるのだ。
 入力データの「~」は「全角チルダ」で、ぼくの「〜」は「波ダッシュ」。字形はほとんど同じなのだが、文字コードは違う。人には同じに見えても、コンピュータからは月とスッポンである。
 調べたら「から」を変換するとWindowsだと「全角チルダ」になって、Macだと「波ダッシュ」に成るらしい。Macで「ちるだ」を変換すると「波ダッシュ」になるので、変換で「全角チルダ」を入力するすべは無いそうだ。
 結局、「~」も「〜」も「~」にすることで事態を打開した。