-
C#樹林
【C#】和暦の元号インデックス(序数)を元号名(”令和”など)に変換する方法
和暦(元号)のインデックスと名称 C#で和暦(日本の元号)を扱う際、System.Globalization.JapaneseCalendarクラスのGetEra(DateTime date)メソッドを使用すると、その日付が属する元号を**数値のインデックス(序数)**として取得できます。 例えば、Dat... -
C#樹林
【C#】西暦(DateTime)を和暦の元号と年に変換する方法
西暦から和暦(元号)への変換 C#で日付を扱うDateTime構造体は、標準でグレゴリオ暦(西暦)を使用しています。しかし、日本のアプリケーションでは、"2025/11/20"のような西暦を、"令和7年"のような和暦(元号と年)の形式で扱いたい場合があります。 Sy... -
C#樹林
【C#】DateTimeの書式指定:ToStringで日付と時刻を自由にフォーマットする方法
日付と時刻の「書式(フォーマット)」 C#でDateTimeオブジェクト(特定の日時)を扱う際、そのままToString()で出力すると、実行環境のOS設定(カルチャ)に依存した標準的な文字列(例: 2025/11/20 14:30)が返されます。 しかし、ログ出力、API連携、UI... -
C#樹林
【C#】文字列をDateTimeに安全に変換するTryParseとカルチャ(和暦)の扱い
文字列からDateTimeへの変換 ユーザー入力、APIレスポンス、ファイルからの読み込みなど、C#プログラムがstring(文字列)型で日付や時刻(例: "2025/11/20")を受け取るケースは非常に多いです。これらの文字列をDateTimeオブジェクトとして扱えなければ... -
C#樹林
【C#】2つのDateTimeの差(期間)を求める方法とTimeSpanの活用
日付や時間の「差」を計算する C#で日付や時刻を扱う際、「イベントの開始時刻から終了時刻までの経過時間」や、「ある日から別の日付までの残り日数」など、2つのDateTime(日時)の「差(間隔)」を計算したい場面は非常に多くあります。 DateTime構造体... -
C#樹林
【C#】DateTime.DaysInMonthで指定した月の日数(月末日)を取得する方法
指定した月の日数(月末日)の取得 C#でカレンダー機能や日付ベースの集計処理を実装する際、「指定した年・月が、何日まで存在するのか」(28日、29日、30日、31日のどれか)という情報が必要になることがあります。 特に2月は、うるう年(閏年)かどうか... -
C#樹林
【C#】DateTime.DayOfYearプロパティで年間積算日(通日)を取得する方法
年間積算日(通日)とは C#で日付処理を行う際、特定の日付が「その年の1月1日から数えて何日目か」を知りたい場合があります。この値を「年間積算日(通日)」または「Day of the Year」と呼びます。 例えば、1月1日は「1」日目、2月1日は「32」日目(1月... -
C#樹林
【C#】DateTime.IsLeapYearでうるう年(閏年)を判定する方法
うるう年(閏年)の判定 C#でカレンダー処理や日付計算を行う際、特定の年が「うるう年(閏年)」であるかどうか(2月29日が存在するかどうか)を判定する必要がある場合があります。 うるう年の判定ロジック(4で割り切れる年はうるう年だが、100で割り切... -
C#樹林
【C#】DateTimeの比較:2つの日付の「前後」と「等価」を判定する方法
DateTime(日時)の比較 C#で日付や時刻データを扱う際、2つのDateTimeオブジェクトの「どちらが新しい(未来)か、古い(過去)か」、「完全に同じ日時か」を比較する必要が頻繁に生じます。 例えば、イベントの開始時刻と終了時刻の前後関係を確認したり... -
C#樹林
【C#】DateTime.AddMonths:Nヶ月後・Nヶ月前を計算する方法と月末の注意点
月単位の日付計算 C#で日付を扱う際、「N日後」を計算するAddDaysと同様に、「Nヶ月後」や「Nヶ月前」を計算したい場面は非常に多くあります。例えば、サブスクリプションの更新日(1ヶ月後)や、ローンの支払いスケジュール(6ヶ月前)などを算出する場合... -
C#樹林
【C#】DateTime.AddDaysでN日後・N日前の日付を計算する方法
日付の加算・減算 C#で日付データを扱う際、「特定の基準日からN日後の日付を求めたい」(例: 登録日から30日後の有効期限)や、「N日前の日付を計算したい」(例: 本日から7日前の日付)といった日付計算は非常に一般的な処理です。 DateTime構造体は、こ... -
C#樹林
【C#】DateTime.DayOfWeekプロパティで曜日を判定する方法 (Sunday, Monday…)
DateTimeから曜日を取得する C#で日付データを扱う際、その日付が「何曜日」であるかに基づいて処理を分岐させたいケースは非常に一般的です。例えば、「土曜日または日曜日の場合は週末料金を適用する」や、「月曜日の場合は週次レポートを作成する」とい... -
C#樹林
【C#】DateTimeから年・月・日・時・分・秒を個別に取得するプロパティ一覧
DateTimeオブジェクトと日時要素 C#においてDateTime構造体は、日付(2025年11月13日)と時刻(15時30分45秒)を一つのオブジェクトとして保持しています。 プログラムを開発していると、このDateTimeオブジェクト全体としてではなく、「月だけを取得して... -
C#樹林
【C#】現在の日付・時刻を取得する:DateTime.Now, Today, UtcNowの正しい使い分け
現在日時の取得 C#でアプリケーションを開発する際、ログのタイムスタンプ、データの作成日時、処理の実行時刻など、「現在の日付」や「現在の時刻」を取得する必要がある場面は非常に多くあります。 .NETのSystem名前空間には、日時を扱うための中心的な... -
Python樹林
Pythonの入れ子リスト(ネストしたリスト):作成、参照、更新の方法
Pythonのリスト(list)は、その要素として数値や文字列だけでなく、別のリストを持つこともできます。このように、リストの中にリストが入った構造を「入れ子(ネスト)リスト」と呼びます。 入れ子リストは、2次元のグリッド(行列やマス目)、座標デー... -
Python樹林
Pythonリストの要素を更新する方法:インデックス指定による代入
Pythonのリスト(list)は「ミュータブル(変更可能)」なデータ型です。これは、リストを一度作成した後でも、その中身(要素)の値を自由に変更できることを意味します。 データベースから取得したデータの状態を更新したり、設定リストの一部を書き換え... -
Python樹林
Pythonのスライス構文:[start:stop:step] でリストを自在に切り出す
Pythonのリスト(list)は、複数のデータを順序付けて格納する強力なデータ型です。このリストから、[0] のように単一の要素を取り出すだけでなく、「1番目から3番目まで」のように、一部の要素をまとめて切り出して新しいリストを作成する機能があります... -
C#樹林
【C#】カルチャに依存しない文字列比較:StringComparison.Ordinal の重要性
文字列比較の落とし穴:「カルチャ」依存 C#で2つの文字列を比較する際、== 演算子や引数なしの Equals() メソッドを使うのが最も簡単です。 string input = "windows"; string constant = "WINDOWS"; bool isEqual = (input == constant); // false bool ... -
C#樹林
【C#】サロゲートペア・絵文字を正しく扱う:StringInfoで「テキスト要素」を操作する
string.Lengthが「正しくない」時 C#において、string型の.Lengthプロパティは、その文字列に含まれるchar(16ビット文字)の数を返します。また、foreach (char c in str)ループは、char単位で文字を処理します。 ほとんどの英数字や基本的な日本語では、... -
C#樹林
【C#】文字列とbyte配列の相互変換:Encoding (UTF-8) のGetBytes / GetString の使い方
なぜ文字列とbyte配列の変換が必要か? C#において、string型(文字列)は人間が読み書きするためのテキストデータ("Hello"など)を扱います。一方で、ファイルへの保存、ネットワークを通じたデータ送信、API連携、暗号化処理など、コンピュータがデータ... -
C#樹林
【C#】文字列と文字配列(char[])の相互変換:ToCharArrayとnew String
文字列と文字配列(char[]) C#において、string(文字列)型は「不変(Immutable)」です。つまり、一度作成された文字列オブジェクトの"ABC"という中身を、"ADC"のように一部分だけ変更することはできません。 一方で、char[](文字の配列)は「可変(Mu... -
C#樹林
【C#】string.Joinで配列やListの要素を区切り文字で連結する方法
コレクションから単一の文字列へ C#でプログラミングを行う際、string.Splitで文字列を配列に分割する操作とは逆に、配列やList<T>(リスト)など、複数の要素を持つコレクションを、指定した区切り文字(デリミタ)で連結し、一つのstring(文字列... -
C#樹林
【C#】文字列補間と逐語的リテラルの組み合わせ:$@構文でエスケープを無効化
$と@の併用 C#には、文字列を扱う上で非常に強力な2つの機能があります。 文字列補間($): $"Name: {userName}" のように、文字列内に {} を使って変数を直接埋め込む機能。 逐語的リテラル(@): @"C:\Folder" のように、文字列内の \(バックスラッシュ... -
C#樹林
【C#】StringBuilder.Replaceで効率的に文字列を置換する方法
string.Replace とパフォーマンスの課題 C#のstring.Replaceメソッドは、文字列の一部を置換するための簡単で便利な方法です。しかし、C#のstring型は「不変(Immutable)」であるため、Replaceを実行するたびに、内部では新しい文字列オブジェクトが生成... -
C#樹林
【C#】StringBuilder入門:大量の文字列を高速に連結する理由と使い方
+演算子による文字列連結の問題点 C#で文字列を連結する最も簡単な方法は + や += 演算子を使うことです。 string message = "User: "; message += "Admin"; // "User: Admin" この方法は、数回の連結であれば全く問題ありません。しかし、forやforeachと... -
C#樹林
【C#】string.Splitメソッドで文字列を分割する方法とオプション(RemoveEmptyEntries)
文字列の「分割」処理 C#でプログラミングを行う際、string型で受け取った一つの長いデータを、特定の「区切り文字(デリミタ)」に基づいて複数の部分文字列に分割し、配列として扱いたい場面が非常に多くあります。 代表的な例としては、CSV(カンマ区切... -
C#樹林
【C#】PadLeftとPadRight:文字列の桁数を揃える(パディング)方法
文字列の「パディング(桁揃え)」とは C#でコンソール出力やテキストファイル、レポートなどを作成する際、数値を文字列に変換しただけでは、"ID: 1"、"ID: 150"、"ID: 99"のように、文字列の長さがバラバラになってしまい、見た目が揃わず読みにくくなり... -
C#樹林
【C#】文字列を1文字ずつ処理する方法:foreachループの活用
文字列内の各文字へのアクセス C#で文字列を扱う際、文字列全体としてではなく、その文字列を構成する「1文字ずつ」にアクセスして処理を行いたい場合があります。例えば、特定の文字(例: '-')がいくつ含まれているか数えたり、文字列内の数字だけを抽出... -
C#樹林
【C#】文字列を大文字・小文字に変換:ToUpperとToLowerの使い方とカルチャ依存(InvariantCulture)の注意点
文字列のケース(大文字・小文字)変換 C#で文字列を扱う際、データの一貫性を保つために、大文字と小文字を統一したい場面がよくあります。例えば、ユーザー入力された "Yes"、"yes"、"YES" をすべて同じ "yes" として扱ったり、辞書のキーやデータベース... -
C#樹林
【C#】string.Insertメソッドで文字列の指定位置にテキストを挿入する方法
文字列への「挿入」処理 C#で文字列を構築する際、既存の文字列(例: "File.log")の特定の位置(例: . の直前)に、別の文字列(例: "_backup")を差し込みたい場合があります。 +演算子やstring.Format、Substringを組み合わせてこの操作を行うことも可...