経緯
C#でDataGridViewを使用している中で、「各列に日付を表示したい」と考える場面がありました。
Excelのように、1列ごとに日付を並べて表示する形式です。今回は、DateTime構造体を使って日付の列を自動生成する方法を学びましたので、その実装方法を紹介いたします。
DateTimeを使って列ヘッダーに日付を追加する
以下のコードでは、2023年1月1日から31日間分の日付を、列としてDataGridViewに追加していく処理を実装しています。
// DataGridViewに表示する列数を指定する
int columnCount = 31;
// 日付のフォーマットを指定する(例:1/1, 1/2, ...)
string dateFormat = "M/d";
// 開始日を設定する
DateTime date = new DateTime(2023, 1, 1);
// 列幅の自動調整モードを設定する
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;
// 日付を列として追加する
for (int i = 0; i < columnCount; i++)
{
string headerText = date.ToString(dateFormat);
dataGridView1.Columns.Add(headerText, headerText);
date = date.AddDays(1);
}
コードの解説
columnCount:追加する列数を指定します。今回は31列(1か月分)です。dateFormat:日付の表示形式を文字列で定義しています。例:「M/d」は「1/1」「1/2」のような表記になります。date:開始日をDateTimeで定義します。任意の日付からスタート可能です。AutoSizeColumnsMode:列幅の自動調整を行うための設定で、今回は列ヘッダーに合わせるモードを指定しています。forループ:日付を1日ずつ増加させながら、列を追加しています。列ヘッダーと内部名の両方に日付文字列を使っています。
実行結果のイメージ
このコードを実行すると、DataGridViewに以下のような日付が列として表示されます。
| 1/1 | 1/2 | 1/3 | … | 1/31 |
|---|
それぞれの列は、DataGridViewのヘッダーとして日付が設定されており、Excel風のスケジュールやカレンダー表示にも応用可能です。
まとめ
DataGridViewの列に日付を表示したい場合は、DateTimeを利用してループ処理を行うことで、簡単に実現できます。
ポイントは、日付のフォーマットを任意に指定できることと、ループによる自動生成により可変的なカレンダー構造を作れる点です。
本記事の方法を応用すれば、たとえば月ごとに列数を変えたり、曜日も併せて表示するなど、さらに柔軟な表現も可能です。
少しでも参考になれば幸いです。
ここまでお読みいただき、ありがとうございました。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
