IRONSOFTWAREHOME
開発者向けアップデート

C# Timespan Format(開発者向けの仕組み)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月21日

今日の急速な開発世界では、時間間隔を処理することは、プロジェクト管理システムから時間追跡ツールに至る多くのアプリケーションにおいて重要です。 C# のTimeSpan構造は、時間間隔を表現するための堅牢な方法を提供し、開発者が計算を行い、時間データを効率的にフォーマットするのを容易にします。 これを強力な.NET用PDF生成ライブラリIronPDFと組み合わせることで、時間データに基づいた動的で視覚的に魅力的なレポートの作成が可能になります。

この記事では、C#でのTimeSpanのフォーマットの複雑さに深く入り込み、それがIronPDFとシームレスに統合されて洞察力のあるレポートを生成する方法を示します。 従業員の勤務時間の追跡やプロジェクトの期間の測定など、報告機能を強化するための実用的な例をこのガイドで提供します。

Understanding TimeSpan in C#

C#のTimeSpanとは何ですか?

C#のTimeSpan構造は、時間間隔を表し、2つの日付及び時間の値間の差を測定するために使用できます。 これは多用途の構造で、開発者が様々な時間関連の計算を行うことを可能にします。例えば:

  • タスクの期間を計算する。
  • イベント間の時間差を測定する。
  • パフォーマンス測定のためのタイマーの作成。

TimeSpanの重要性は、さまざまなアプリケーションでの時間間隔管理を簡略化し標準化する能力にあります。時間関連の様々なタスクをより扱いやすくします。

TimeSpanの作成と使用の基本メソッド

TimeSpanオブジェクトの作成は簡単で、いくつかの方法が利用可能です。例えば:

  • **TimeSpan.FromHours(double hours):**指定された時間数を表す TimeSpan を作成します。
  • **TimeSpan.FromMinutes(double minutes):**指定された分数を表す TimeSpan を作成します。
  • **TimeSpan.FromSeconds(double seconds):**指定された秒数を表す TimeSpan を作成します。

以下にTimeSpanインスタンスを作成して計算に使用する方法を説明する例があります:

// Creating TimeSpan instances
TimeSpan taskDuration = TimeSpan.FromHours(2.5); // 2 hours and 30 minutes
TimeSpan breakDuration = TimeSpan.FromMinutes(15); // 15 minutes
// Calculating total time spent
TimeSpan totalTime = taskDuration + breakDuration;
Console.WriteLine($"Total time spent: {totalTime}"); // Outputs: 02:45:00

次の出力が表示されます:

C# タイムスパンのフォーマット (開発者向けの動作): 図1

表示用のTimeSpanのフォーマット

TimeSpanの値を表示する場合、C#はいくつかのフォーマットオプションを提供します。 指定子出力は、TimeSpan値を文字列に変換する際にそれらを表示する方法を制御するために使用されます。 これらの指定子は、TimeSpanオブジェクトの出力フォーマットを定義し、最終的なPDFレポートにおける表現のカスタマイズを助けます。 最も一般的に使用されるフォーマット指定子には次のものがあります:

  • **"c":**不変形式 (例: 1 日と 2 時間 30 分 45 秒の場合は 1.02:30:45)。
  • **"g":**標準の書式指定子。日数がゼロの場合は除外されます (例: 02:30:45)。 ***カスタム フォーマット:**時間と分だけを表示したり、時間と日を表示したりするなど、特定のニーズに合わせてカスタム フォーマットを定義できます。

レポートやログでの出力用にTimeSpanをフォーマットする例を以下に示します:

TimeSpan duration = new TimeSpan(1, 2, 30, 45); // 1 day, 2 hours, 30 minutes, 45 seconds
// Default "c" format string produces the output: 1.02:30:45
Console.WriteLine(duration.ToString("c"));
// Custom format "hh:mm:ss" outputs: 26:30:45
Console.WriteLine(duration.ToString(@"hh\:mm\:ss")); 
// Custom format with days, outputs: 1d 02h 30m
Console.WriteLine(duration.ToString(@"d'd 'hh'h 'mm'm '"));

この例は以下の出力を表示します:

C# タイムスパンのフォーマット (開発者向けの動作): 図2

PDF生成のためのIronPDFでのTimeSpanの使用

.NETプロジェクトでのIronPDFの設定

IronPDFを使い始めるには、まずインストールする必要があります。 すでにインストールされている場合は次のセクションに進むことができますが、そうでない場合は以下の手順でIronPDFライブラリのインストール方法をカバーします。

NuGetパッケージマネージャーコンソール経由

NuGetパッケージマネージャーコンソールを使用してIronPDFをインストールするには、Visual Studioを開いてパッケージマネージャーコンソールに移動します。 その後、以下のコマンドを実行します。

PM > Install-Package IronPdf

NuGetパッケージマネージャー経由でソリューションの管理

Visual Studioを開いたら、"ツール -> NuGetパッケージマネージャー -> ソリューションのNuGetパッケージを管理"に移動してIronPDFを検索します。 ここから、プロジェクトを選択して"インストール"をクリックするだけで、IronPDF がプロジェクトに追加されます。

C# タイムスパンのフォーマット (開発者向けの動作): 図3

IronPDFをインストールしたら、IronPDFを使い始めるためには、コードの先頭に正しいusing文を追加するだけです。

using IronPdf;

これでIronPDFとTimeSpanを使ったPDF生成タスクを始める準備が整いました。

IronPDFを使用した時間ベースのレポート生成

IronPDFがセットアップされたら、TimeSpanデータを使って情報豊富なPDFレポートを生成できます。 例えば、従業員の作業ログを生成する必要があるシナリオを考えてみてください。 TimeSpan値を利用して、タスクの所要時間や休憩時間を効果的に表示することができます。

例シナリオ: PDFレポートでのTimeSpan値のフォーマット

PDFレポートでTimeSpanデータを使用する方法を以下に示します。単純な作業ログを生成する場合を含みます:

using IronPdf;
public static void Main(string[] args)
{
    TimeSpan duration = new TimeSpan(9, 30, 25);
    var employees = new List<(string name, TimeSpan timeSpan)> {
    ("Jane Doe",  duration),
    ("John Doe", duration)
    };
    GenerateWorkLogReport(employees);
}
public static void GenerateWorkLogReport(List<(string Employee, TimeSpan Duration)> workLogs)
{
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    var htmlContent = "<h1>Work Log Report</h1><table border='1'><tr><th>Employee</th><th>Duration</th></tr>";
    foreach (var log in workLogs)
    {
        htmlContent += $"<tr><td>{log.Employee}</td><td>{log.Duration.ToString(@"hh\:mm\:ss")}</td></tr>";
    }
    htmlContent += "</table>";
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    pdf.SaveAs("WorkLogReport.pdf");
}

C# タイムスパンのフォーマット (開発者向けの動作): 図4

この例では、従業員の作業ログを表示するための簡単な表を作成しました。 GenerateWorkLogReportメソッドは、フォーマットされたTimeSpan値を持つHTMLテーブルを生成し、それをPDFドキュメントに変換します。 IronPDFのChromePdfRendererクラスを使用して、HTMLコンテンツをPDFフォーマットにレンダリングします。 PdfDocumentは、作成されたPDFオブジェクトを管理し、保存するために使用されます。

レポートでのTimeSpanのフォーマットと使用に関する高度な技術

異なるユースケースに向けたTimeSpan出力のカスタマイズ

TimeSpan出力をカスタマイズすると、レポートの可読性が大幅に向上します。 例えば、時間と分のみを表示する必要がある場合、TimeSpanをそのようにフォーマットすることができます。 この例では、前の例で作成した同じ従業員データを使用し、TimeSpanをフォーマットして勤務した時間と分のみを表示します。 このシナリオでは秒は記録に不要で、不必要なスペースを取るだけなので、フォーマットで省きます:

using IronPdf;
class Program
{
    public static void Main(string[] args)
    {
        TimeSpan duration = new TimeSpan(9, 30, 25);
        var employees = new List<(string name, TimeSpan timeSpan)> {
        ("Jane Doe",  duration),
        ("John Doe", duration)
        };
        GenerateWorkLogReport(employees);
    }
    public static void GenerateWorkLogReport(List<(string Employee, TimeSpan Duration)> workLogs)
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        var htmlContent = "<h1>Work Log Report</h1><table border='1'><tr><th>Employee</th><th>Duration</th></tr>";
        foreach (var log in workLogs)
        {
            // Custom format string to format the TimeSpan value for display
            string formattedDuration = log.Duration.ToString(@"hh\:mm");
            htmlContent += $"<tr><td>{log.Employee}</td><td>{formattedDuration}</td></tr>";
        }
        htmlContent += "</table>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("WorkLogReport.pdf");
    }
}

C# タイムスパンのフォーマット (開発者向けの動作): 図5

この例で、ToString(@"hh\:mm")は、カスタムフォーマット文字列を使用してTimeSpanを09:30(合計時間と分)としてフォーマットします。 これを使用することで、TimeSpanが望む形で表示され、ドキュメントの可読性を保つことができます。 これは逆に行うことも可能で、文字列をTimeSpanにパースすることができます。 パースは、特定のフォーマットに従った入力文字列(例:"hh:mm"や"d.hh:mm")を実際のTimeSpanオブジェクトに変換し、C#でプログラムでの操作が可能になります。

大きな時間間隔の処理と可読性のためのフォーマット

大きなTimeSpan値を扱う際には、可読性を重視してフォーマットすることが重要です。 例えば、"3日、5時間"のように長い期間をわかりやすいフォーマットに変換できます:

class Program
{
    public static void Main(string[] args)
    {
        // Sample data: List of employee names and their work durations (TimeSpan)
        var workLogs = new List<(string Employee, TimeSpan Duration)>
        {
            ("Alice", new TimeSpan(5, 30, 0)), // 5 hours, 30 minutes
            ("Bob", new TimeSpan(3, 15, 0)),   // 3 hours, 15 minutes
            ("Charlie", new TimeSpan(7, 45, 0)) // 7 hours, 45 minutes
        };
        // Create the HTML content for the PDF report
        string htmlContent = @"
            <h1>Work Log Report</h1>
            <table border='1' cellpadding='5' cellspacing='0'>
                <tr>
                    <th>Employee</th>
                    <th>Work Duration (hh:mm)</th>
                </tr>";
        // Loop through the work logs and add rows to the table
        foreach (var log in workLogs)
        {
            string formattedDuration = FormatLargeTimeSpan(log.Duration);  // Custom method to format large TimeSpan values
            htmlContent += $"<tr><td>{log.Employee}</td><td>{formattedDuration}</td></tr>";
        }
        // Close the HTML table
        htmlContent += "</table>";
        // Create a new HtmlToPdf renderer
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        // Render the HTML content as a PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF to a file
        pdf.SaveAs("WorkLogReport.pdf");
    }
    // Custom method to handle the formatting operation
    static string FormatLargeTimeSpan(TimeSpan timeSpan)
    {
        // Check if there are days in the TimeSpan and format accordingly
        if (timeSpan.TotalDays >= 1)
        {
            return string.Format("{0} days, {1} hours, {2} minutes",
                (int)timeSpan.TotalDays,
                timeSpan.Hours,
                timeSpan.Minutes);
        }
        else
        {
            // If the duration is less than a day, show only hours and minutes
            return string.Format("{0} hours, {1} minutes", timeSpan.Hours, timeSpan.Minutes);
        }
    }
}

C# タイムスパンのフォーマット (開発者向けの動作): 図6

この例では、カスタムメソッドFormatLargeTimeSpanが大きなTimeSpan値を簡単に読めるフォーマットへ変換します。方法は、TimeSpanの値が日を含んでいるかどうかを確認し、それに応じて出力をフォーマットする、合成フォーマットをサポートするメソッドを使用しています。

  • 総期間が24時間を超える場合、日が抽出され、残りの時間と分と共に表示されます。
  • 1日未満の間隔の場合、時間と分のみが表示されます。

なぜTimeSpanベースのPDF生成にIronPDFを選ぶのか?

レポートアプリケーションのためのIronPDFの主な利点

IronPDFは、文字列、時間、およびHTMLデータに基づいて動的なPDFを生成するための強力な機能で際立っています。 IronPDFを使用すれば、PDF関連のタスクの処理が非常に容易になります。 基本的なPDF生成から安全なPDF暗号化まで、IronPDFはすべてのニーズをカバーしています。 主な利点には次のものがあります:

  • **HTML から PDF への変換:**レイアウトとデザインを維持しながら、 HTML コンテンツをPDF に簡単に変換できます。 IronPDFは、DOCX画像URLASPXを含む多くの他のファイルタイプのPDFへの変換も処理できます。 ***カスタマイズ オプション:**カスタム テンプレートと書式設定を使用して、特定のビジネス ニーズに合わせてレポートをカスタマイズし、PDF ファイルにプロフェッショナルな外観のヘッダーとフッター目次、さらにはカスタム背景を追加します。 *ピクセルパーフェクトな PDF: IronPDF は最新の Web 標準を強力にサポートしているため、Web コンテンツから生成された PDF でも一貫してピクセルパーフェクトな品質の PDF ドキュメントが生成され、ブランドと視覚的に一貫性のある高品質の PDF ドキュメントが生成されます。

.NETとTimeSpanのフォーマットとシームレスな統合

IronPDFは.NETアプリケーションとシームレスに統合され、開発者がTimeSpan構造を効果的に活用することを許可します。 IronPDFを使用すると、最小限の手間でフォーマットされた時間データを含むプロフェッショナルなレポートを生成でき、報告プロセスが効率的で簡単になります。

結論

この記事では、C#におけるTimeSpan値のフォーマットと処理方法を探り、それをIronPDFにシームレスに統合して動的な時間ベースのレポートを生成する方法を紹介しました。 C# TimeSpanフォーマット構造は、プロジェクト期間、作業ログ、タスク完了時間などの時間間隔を表現するための重要なツールです。 短い時間間隔を扱う場合でも、数日、数時間、数分にまたがる大きな間隔を扱う場合でも、C#はこのデータを人間が読める形式で表示するための柔軟なフォーマットオプションを提供しています。 より高度な例に進むと、文化のためのフォーマット規約に従い、時間入力を取り込むことや、TimeSpanへの文字列のパースなどが含まれます。

IronPDFは、精度を持ってHTMLをPDFに変換することに優れており、データドリブンアプリケーションからレポートを生成するための理想的なツールです。 C#との統合により、TimeSpanのような複雑な構造を高品質なPDFに組み込むことが容易になります。

TimeSpan値をフォーマットし、それをIronPDFを使ってPDFレポートに統合する方法を理解した今、次のステップを踏む時です。IronPDFの無料トライアルをダウンロードし、プロジェクトで動的でデータドリブンなレポートを生成する際のその完全な潜在能力を探求してみてください。 IronPDFを使うことで、時間ベースのデータを最小限の労力で磨かれたプロフェッショナルな文書に変えることができます。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から