アーカイブ

2012 年 2 月 のアーカイブ

EANコードメーカー

2012 年 2 月 29 日 コメントはありません

EANコード(JANコード)を作るツールを作りました。

EANコードメーカー

13桁の数列を入力すると、それに応じたバーコードの画像を表示します。

カテゴリー: Tool タグ: ,

確定申告で医療費控除

2012 年 2 月 29 日 コメントはありません

年間の医療費が10万円を超える場合、確定申告で医療費控除を適用すると還付金があります。
今回、確定申告をしたので、自分の覚書を兼ねて、記事にしておきます。

前提

  • サラリーマンで既に源泉徴収票がある。
  • 病院等で支払った医療費の領収証がある。
  • 確定申告は郵送で行う。

手順

  1. 医療費の明細書(pdf)を作る。Excelで同じような表を作ってもよい。※私はこの明細書に「別紙」と書いて合計と計算結果を記入し、Excelで作った表を別紙としました。
  2. 医療費の明細書と領収証を適当な封筒に入れる。※税務署に行けば所定の封筒がもらえるそうです。領収書は結構、かさばり、折りたたむと厚くなるので、私はA5版の封筒を使い、端を折りました。
  3. 国税庁の平成23年分 確定申告特集の「申告書等の作成を開始される方」をクリックする。※指示に従って入力していくだけです。簡単です。
  4. 申告書等を印刷する。※チェックリスト等も併せて印刷すると間違えません。ご丁寧に税務署の宛名も印字されるので切って封筒に貼るだけです。
  5. 申告書に押印する。
  6. 封筒に宛名(税務署)を書き(宛名の紙片を貼る)、申告書と医療費の封筒を入れる。※私はA5版を使いました。
カテゴリー: 小ネタ タグ: , ,

2月29日生まれの人の誕生日

2012 年 2 月 29 日 コメントはありません

2月29日は4年に1度しか来ませんが、2月29日生まれの人の誕生日はどうなるのでしょう。
「年齢計算ニ関スル法律」や「民法」の定めに従うことになるのですが、はっきりしません。
では、その他の法律で明確に定められているものを探してみると、ありました。
道路交通法第九十二条の二の第1項に免許証の有効期間を定める表があるのですが、この備考に次の通り書かれています。

その者の誕生日が二月二十九日である場合におけるこの表の適用については、その者のうるう年以外の年における誕生日は二月二十八日であるものとみなす。

つまり2月29日に生まれた人は、閏年は2月29日、それ以外は2月28日が誕生日になるのです。
免許証に関する定めなので免許証を持たない人には関係ないですが、一般的に、このように判断してよいと思います。

カテゴリー: 豆知識 タグ: ,

EANコード用チェックデジット

2012 年 2 月 27 日 コメントはありません

EANコード(JANコード)は13桁ですが、最後の桁はチェックデジットです。
チェックデジットの作り方は色々ありますが、EANコードの場合は「モジュラス10ウェイト3」と言われる方法を使っています。

  1. 12桁について、右から数えて奇数番目の数は1倍、偶数番目の数は3倍として合計します。
  2. 合計を10で割ったあまりを求めます。
  3. あまりが0のときは「0」、0以外のときは「10-あまり」がチェックデジットとなります。

JavaScriptでサンプルを作ってみました。

function checkdigit(txt) {
    //EANコード用のチェックデジット(モジュラス10ウェイト3)
    var s = 0;
    for (var i = 0; i < txt.length; i++) {
        s += txt.substr(txt.length - i - 1, 1) * ((i % 2 == 0) ? 3 : 1);
    }
    return ((s % 10 == 0) ? 0 : 10 - s % 10);
}

バーコードの仕組み

2012 年 2 月 27 日 コメントはありません

商品に付けられているバーコードで最もポピュラーなものをEANコード(JANコード)と言います。
縞模様で13桁(1桁+6桁+6桁)の数列を表現しています。
これの作り方を調べました。

全体の構成

同じ幅の113列をそれぞれ白か黒で塗って縞模様を作ります。
左端の余白が11列あります。
左のガードバーが「黒白黒」で3列あります。
13桁の数値のうち2桁目から7桁目までの6桁を、変換ルールに従い、それぞれ7列で表わします。都合42列になります。
中央のセンターバーが「白黒白黒白」で5列あります。
8桁目から13桁目までの6桁を、それぞれ7列で表わします。都合42列になります。
右のガードバーが「黒白黒」で3列あります。
右端の余白が7列あります。
合計すると113列になります。

変換ルール

上の説明では、1桁目の数値が出てきません、変換ルールの中に「このパターンならば4であることが分かる」というような仕組みが隠されています。
この変換ルールについては技術解説に詳しく書かれています。
数値を縞模様に変換するルールは次の通りです。二つの表を使います。

数値(1桁目) パターン
0 奇奇奇奇奇奇
1 奇奇偶奇偶偶
2 奇奇偶偶奇偶
3 奇奇偶偶偶奇
4 奇偶奇奇偶偶
5 奇偶偶奇奇偶
6 奇偶偶偶奇奇
7 奇偶奇偶奇偶
8 奇偶奇偶偶奇
9 奇偶偶奇偶奇
数値 左半分(奇) 左半分(偶) 右半分
0 白白白黒黒白黒 白黒白白黒黒黒 黒黒黒白白黒白
1 白白黒黒白白黒 白黒黒白白黒黒 黒黒白白黒黒白
2 白白黒白白黒黒 白白黒黒白黒黒 黒黒白黒黒白白
3 白黒黒黒黒白黒 白黒白白白白黒 黒白白白白黒白
4 白黒白白白黒黒 白白黒黒黒白黒 黒白黒黒黒白白
5 白黒黒白白白黒 白黒黒黒白白黒 黒白白黒黒黒白
6 白黒白黒黒黒黒 白白白白黒白黒 黒白黒白白白白
7 白黒黒黒白黒黒 白白黒白白白黒 黒白白白黒白白
8 白黒黒白黒黒黒 白白白黒白白黒 黒白白黒白白白
9 白白白黒白黒黒 白白黒白黒黒黒 黒黒黒白黒白白

「4 971633 002647」を例に挙げて説明します。
「971633」が「左半分」、「002647」が右半分になります。

1桁目
「4」なので、パターンは「奇偶奇奇偶偶」となります。
※日本に割り当てられているのは「45」または「49」なので、ほとんどの場合、このパターンになります。

2桁目
左半分の1番目と見て、パターン「奇偶奇奇偶偶」の1番目の「奇」となります。
「左半分(奇)」を見て、2桁目の数値は「9」なので「白白白黒白黒黒」となります。

3桁目
左半分の2番目と見て、パターン「奇偶奇奇偶偶」の2番目の「偶」となります。
「左半分(偶)」を見て、2桁目の数値は「7」なので「白白白黒白黒黒」となります。
以下、4桁目から7桁目まで同様です。

8桁目
ここから右半分です。奇遇の区別はありません。
「右半分」を見て、8桁目の数値は「0」なので「黒黒黒白白黒白」となります。
以下、9桁目から13桁目まで同様です。

エラーチェック

機械で縞模様をスキャンして13桁の数列に変換しますが、上のパターンに合致しない場合は、エラーになります。
また数列の最後の桁はチェックデジットになっていて、これが合致しない場合もエラーになります。
チェックデジットというのは、12桁をある規則により1桁の数に変換する方法で、EANコードの場合、「モジュラス10のウェイト3」という手法を使っているそうです。

カテゴリー: 豆知識 タグ: ,

全角文字間のスペースを削除

2012 年 2 月 25 日 コメントはありません

半角英数字では半角スペースが単語を区切るので、ないと困りますが、日本語間の半角スペースは不要である場合があります。
日本語(半角英数字以外)動詞に挟まれた半角スペースだけを削除するExcelのマクロを考えてみました。

Like演算子を使っています。
3文字ずつチェックし、「日本語」「半角スペース」「日本語」と並んでいる場合、「半角スペース」を取り除き、「日本語」「日本語」とします。
「Like “[!0-9a-zA-Z]“」とすることで、半角数字と半角英字以外を調べることができます。

Sub 選択範囲の全角文字間のスペースを削除する()
    Const an = "[!0-9a-zA-Z]"
    Dim c As Object
    Dim s, a As String
    Dim i As Long
    For Each c In Selection
        v = c.Value
        s = ""
        For i = 1 To Len(v)
            a = Mid(v, i, 3)
            If a Like an & " " & an Then
                i = i + 1
            End If
            s = s + Left(a, 1)
        Next i
        c.Value = s
    Next c
End Sub
カテゴリー: Excel タグ:

コストコ多摩境、営業再開

2012 年 2 月 24 日 コメントはありません

本日、コストコ多摩境倉庫店が営業を再開しました。
8時開店の予定でしたが7時に開いたそうです。
卵20個パックが先着順に貰えることになっており妻は見事ゲットしたそうです。
しかし何も買わずに帰るとのこと。
入店待ちの行列が駐車場を一周するほどだったそうです。
周辺の道路は多摩境通りだけでなく町田街道まで大渋滞。
いつまでこの混雑が続くのか心配です。

カテゴリー: 買い物 タグ:

二つのコップの問題

2012 年 2 月 23 日 コメントはありません

こんな問題があります。
「3デシリットルのコップと5デシリットルのコップがあります。これらを使って1デシリットルの水をはかりとるにはどうしたらいいですか」

説明しやすいように
左が3、右が5
とします。

左に水をいっぱいに注ぎます。
左の水を右に移します。右に3デシリットル入っています。
左に水をいっぱいに注ぎます。左に3デシリットル、右に3デシリットル入っています。
左の水を右に移します。右には5デシリットルまで入りますが、既に3デシリットル入っていますから、移せるのは2デシリットルだけです。
これにより、左に1デシリットル、右に5デシリットルとなりました。
1デシリットルをはかりとることができました。

2デシリットルから10デシリットルまでのコップで1デシリットルをはかりとるケースをすべて考えてみました。
左右同じコップだとできません。
さらに互いに素でないとできません。2デシリットルと4デシリットルで1デシリットルをはかりとることはできません。
「(3:5)」のように書かれているのは操作をした結果です。この場合、左が3デシリットル、右が5デシリットルとなります。 続きを読む…

カテゴリー: 豆知識 タグ: , ,

アサヒビール「ドライゼロ」

2012 年 2 月 22 日 コメント 2 件

2月21日にアサヒビールがノンアルコールビール「ドライゼロ」を発売しました。
早速、飲んでみました。

まず缶のデザインは確かにビールのスーパードライにそっくりです。ただし赤く「ノンアルコール」とはっきり書いてあるので間違えることはないと思います。

味はスーパードライに似ています。特に炭酸を強く感じるのどごしは「ドライ」らしいです。
一方、「ビール感」は弱く感じました。スーパードライは従来の「ビールらしさ」である苦みを抑えた点が大ヒットの理由の一つなので、それを再現したとなると「ビール感」が弱いのは当たり前かもしれません。

なお、ドライゼロをジョッキに注いで飲んだところ、「ビール感」が出たように感じました。物足りない場合は、ジョッキを使った方がいいかもしれません。本物ほどではないですが、泡も出ます。

ビール感は弱いですが、のどごしはとても良いので、夏にスポーツドリンク代わりに飲んだら最高かもしれません。

最善手を見つける「七五三ゲーム必勝法」

2012 年 2 月 19 日 コメントはありません

七五三ゲームの必勝法を使い、最善手を探すツールを作りました。
七五三ゲーム必勝法

カテゴリー: Tool タグ: ,