【C#】平成から令和へ!和暦変換ツール作ってみた
新元号令和になって1年以上経ちましたけど、すっかり令和が馴染んできた感じがします。 私は元号改元を経験したのは2度目ですが(昭和から平成、平成から令和)、1度目は赤ん坊だったので何も覚えてないです(笑)
そんな新元号令和ですが、Windows PCではアップデートパッチが配布されてそれが適応されていると、令和と表示されるようになります。会社とかの管理ネットワークで使っているとインターネットで気軽に更新が出来なくてWSUSなどの更新サーバを利用するケースがあると思います。 それできちんと改元対応されているか確認するために、和暦変換ツールを作ってみました。 初のC#で作ったプログラムでしたが、意外と簡単に作れたのでご紹介します。
目的
Windows Updateが適応されて正常に元号が表示されるか確認するツールを作ります。 ちなみにOfficeでの改元の表示はOfficeのアップデートパッチが必要なので、このツールでは確認できません。Officeの確認をしたい場合はExcelなどで日付を入力して確認してみてください。
できたもの
今回作ったものが以下のものになります。見た目はとりあえず動けばいいというぐらいで作ったので適当になります。日付を入力するかカレンダー形式で日付を選んでbutton1をクリックすると、下記のボックスに西暦に表示された日付が表示されます。
手順
では和暦変換ツールを作成する手順を説明します。
環境
今回の開発は以下のものを使って作りました。
- Windows 10 Pro(64bit)
- OSはWindowsであれば問題ないと思います。
- Visual Studio 2013 Professional
会社のプログラム開発が最近からC#で開発を進めることになっており、支給されたPCにVisual Studio 2013 の Professionalが入っていました。amazonで中古価格を検索すると7万円ほどするみたいです。しかし個人開発ならCommunity版などで開発が出来るみたいです。
今回記事を書くにあたり、自宅のPCにVisual Studio Communityを入れて開発できるか試してみました。
画面配置
新規プロジェクト作成でWindows フォームアプリケーション(.NET)を選択します。すると、フォームデザインのウィンドウが表示されるので、下記のように配置しました。
GUIで配置できるので、位置や大きさなどマウスで操作でき、簡単にデザインを行えました。
コーディング
設置したボタンをダブルクリックすると、ボタンにイベントを実装するコードウィンドウに移ります。今回のプログラムは以下の通りです。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 和暦変換
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var calendarJP = new System.Globalization.JapaneseCalendar();
var cultureJP = new System.Globalization.CultureInfo("ja-JP");
cultureJP.DateTimeFormat.Calendar = calendarJP;
this.textBox1.Text = this.dateTimePicker1.Value.ToString("ggy年M月d日", cultureJP);
}
}
}
デフォルトでほとんど入力されており、button_clickの4行分だけでの短いコード量で実装することが出来ました。Visual Studioならコード補完も機能してくれてコーディングしやすかったです。
和暦変換のまとめ
無事に和暦変換ツールを作成して、Windows Updateで令和対応できているか確認することが出来ました。しかしすでに上司がVB6で和暦変換ツールを作成していたので、今回作成したツールはお蔵入りになってしまいました。
初めて作ったC#のプログラムでしたが、GUIで画面が作れてコードもVBと似ていたので比較的楽に作ることが出来ました。今後C#のプログラム開発を作ることが多くなるとのことなので、なにかこのブログで紹介できるプログラムがあれば紹介していこうと思います。
ディスカッション
コメント一覧
まだ、コメントがありません