【課題1-03】日付時刻に関連する操作
| プロジェクトタイプ | C#コンソールアプリ※ |
|---|---|
| プロジェクト名 | Prac_1_03 |
| ソリューション名 | PET1 |
| ターゲットフレームワーク | .NET 6.0 (長期的なサポート) |
| 最上位レベルのステートメントを使用しない | 使用しない(チェックオン) |
※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!
_のテンプレートでは,あらかじめDateTime型の変数が二つ宣言されている.変数名はegg,hamである.
この二つのDateTime型の変数の値に基づいて,以下のように場合分けして表示するプログラムを作成せよ.
- 変数
eggがhamよりも過去の日時である場合:- 「
eggはhamの期間分前です」と表示する.
- 「
- 変数
eggがhamよりも未来の日時である場合:- 「
eggはhamの期間分後です」と表示する.
- 「
- 変数
egg,hamが同じ日時の場合:- 「
eggはhamと同じ日時です」と表示する.
- 「
出力フォーマットの詳細は以下の_を参照せよ.
変数eggがhamよりも過去の日時である場合:
eggはhamの期間分前です
変数eggがhamよりも未来の日時である場合:
eggはhamの期間分後です
変数egg,hamが同じ日時の場合:
eggはhamと同じ日時です
- 凡例
egg- 変数
eggのその時点での内容.必ず変数eggの内容がここに表示されるようにすること.決め打ちにしてはならない. - 「
年4桁-月2桁-日2桁時2桁(24時間制):分2桁」のフォーマットで表示する(日付と時刻の間に半角スペースがひとつ入るので注意せよ).
- 変数
ham- 変数
hamのその時点での内容.必ず変数hamの内容がここに表示されるようにすること.決め打ちにしてはならない. - 「
年4桁-月2桁-日2桁時2桁(24時間制):分2桁」のフォーマットで表示する(日付と時刻の間に半角スペースがひとつ入るので注意せよ).
- 変数
は- 文言."は"
の- 文言."の"
期間- 二つの日時の差(正の数).分で表示する.
分前です- 文言."分前です"
分後です- 文言."分後です"
と同じ日時です- 文言."と同じ日時です"
なお,仮に変数の内容が変更されたとしても正しく動作するようにすること.
プログラムの概形は_のようにすること(必ず以下をコピーしProgram.cs全体を上書きすること).
| |
正しく実装できた場合,実行結果は_のようになる。
2023-09-01 21:24は2023-09-02 01:07の223分前です
他の日時の組み合わせを試すには
_のテンプレートコードでは,三つのケース(eggがhamより前,後,同値)のうち一つしか試すことはできない.
テンプレートコードで 【★】 を付けた行を書き換えれば他の二つのケースの動作を試すことができる(提出時は_の内容に戻しておくこと).
変数eggがhamよりも過去の日時である場合:
これがテンプレートコードのデフォルトの記述内容である.【★】の行を「static Random sRandom = new Random(162);」に書き換えると出力結果は_のようになる.
2023-09-01 21:24は2023-09-02 01:07の223分前です
変数eggがhamよりも未来の日時である場合:
【★】の行を「static Random sRandom = new Random(972);」に書き換えると出力結果は_のようになる.
2023-09-02 00:15は2023-09-01 23:20の55分後です
変数egg,hamが同じ日時の場合:
【★】の行を「static Random sRandom = new Random(1301);」に書き換えると出力結果は_のようになる.
2023-09-02 06:58は2023-09-02 06:58と同じ日時です
他の日時の組み合わせを試すには : 閉じる
ヒント
DateTime型は数値型と同様に<や>などの比較演算子を用いて比較することができる.DateTime型同士の引き算を行うことによって二つの日時の間の期間を計算することができる.