2012年2月19日日曜日

C#で曜日を獲得

ちょっと 気になったので
C#です
Cと違ってC#は楽でいい
ちなみに結果は日本語で漢字3文字出力です

とりあえずこんな感じ

コードは↓

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e) {
            string s = "";
            int i = (int)DateTime.Now.DayOfWeek;
            s += "今日は" + DoW2SJP(i) + "曜日です\r\n";
            s += "昨日は" + DoW2SJP(i + 6) + "曜日でした\r\n";
            s += "明日は" + DoW2SJP(i + 8) + "曜日です\r\n";

            MessageBox.Show(s);
        }

        private string DoW2SJP(int day)
        { return ("日月火水木金土").Substring(day % 7, 1); }
    }
}

string DoW2JP(int day)は
引数に曜日を渡すと戻り値に曜日を漢字1文字で返します

曜日は数字で渡されるので
関数で変換します
かるーく説明すると
("日月火水木金土")が戻り値の曜日です
それをSubstringで切り出します
渡される数字は0が日曜~6が土曜なので
日~土までの7個の漢字を文字列として与えています

とりあえず今日の曜日だけじゃつまらないので
今日+6と今日+8で昨日と明日の曜日も獲得しています

あまり綺麗なコードじゃないかもしれないけど
ま 楽だし デバッグくらいには使えるんじゃないでしょうか
某夏の戦争に出てきた計算法は今度調べてみようっと
人間離れした人間なら一瞬で暗算できるという設定だから PCでなら計算できるでしょう(たぶん)

0 件のコメント:

コメントを投稿