【C#】日時操作3

日時操作2では特定の日時に対して日数や時間を加減する方法について記載しました。日時操作3では、日時変数同士の計算方法を記載します。


 日時変数(DateTime)同士の計算


日時変数同士の計算結果を代入する変数の型は TimeSpan を使います。

例:1日後から本日(同時刻)を引いた結果を、日にち・時間・分・秒換算で表示します。処理の流れは下記の通りです。
 1.本日の日時を取得する
 2.1日後の日時を取得する
 3.1日後の日時 - 本日の日時の差を取得する
 4.上記3の結果を日にち換算する:1と表示される
 5.上記3の結果を時間換算する:24と表示される
 6.上記3の結果を分換算する:1,440と表示される
 7.上記3の結果を秒換算する:86,400と表示される

/* 変数の設定 */;
DateTime dtNow, dtNextDay;
TimeSpan tsDiff;

/* 1.本日の日時を取得する */
dtNow = DateTime.Now;

/* 2.1日後の日時を取得する */
dtNextDay = dtNow.AddDays(1);

/* 3.1日後の日時 - 本日の日時の差を取得する */
tsDiff = dtNextDay - dtNow;

/* メッセージボックスで日時表示 */
MessageBox.Show
(
  string.Format
  (
    "日にち換算: {0}\n時間換算: {1}\n分換算: {2}\n秒換算: {3} "
    , tsDiff.TotalDays.ToString() // 4.上記3の結果を日にち換算:1と表示される
    , tsDiff.TotalHours.ToString() // 5.上記3の結果を時間換算:24と表示される
    , tsDiff.TotalMinutes.ToString("#,##0") // 6.上記3の結果を分換算:1,440と表示される
    , tsDiff.TotalSeconds.ToString("#,##0"))); // 7.上記3の結果を秒換算:86,400と表示される
  )
)


   ▽出力結果
   


カテゴリー: C#, システム開発 | コメントする

【C#】日時操作2

日時操作1では【変数の型】【現在の日時の取得】【日時の表示】【日時の表示形式の変更】を記載したので、日時操作2では特定の日時に対して日数や時間を加減する方法について記載します。


 日時に特定日数・時間の足し算・引き算


日付・時刻の足し算・引き算は .Add~ を使います。

例えば年の足し算(1年後)は dtNow.AddYears(1) と書き、年の引き算(1年前)は dtNow.AddYears(-1) と書きます。(dtNowは日時の変数)

/* 変数の設定 */;
DateTime dtNow, dtNextYear, dtLastYear;

/* 本日の日時を取得 */
dtNow = DateTime.Now;

/* 1年後の日時を取得 */
dtNextYear = dtNow.AddYears(1);

/* 1年前の日時を取得 */
dtLastYear = dtNow.AddYears(-1);

/* メッセージボックスで日時表示 */
MessageBox.Show(string.Format("翌年: {0}\n本日: {1}\n前年: {2} ", dtNextYear.ToString(), dtNow.ToString(), dtLastYear.ToString()));

   ▽出力結果
   


年の場合は AddYears() を使いましたが、下記のように年月日 時分秒 それぞれメソッドが用意されてます。

変更内容 メソッド
AddYears(int)
AddMonths(int)
AddDays(double)
時間 AddHours(double)
AddMonths(double)
AddSeconds(double)

カテゴリー: C#, システム開発 | コメントする

【C#】日時操作1


 変数の型


日付・時刻の変数の型は DateTime を使います。

DateTime dtNow;


 現在の日時の取得(本日)


現在の日にち・時間を求める時には DateTime.Now を使います。

DateTime dtNow;
dtNow = DateTime.Now;


 日時の表示(メッセージボックス)


メッセージボックスを使って日付を表示する場合、文字列として扱う必要があるため.ToString()を使います。

MessageBox.Show(dtNow.ToString());

   ▽出力結果
   

MessageBox.Show(dtNow.ToString("yyyy-MM-dd"));

   ▽出力結果
   


 日時の表示形式の変更


上記のように日時の表示形式は .ToString("yyyy-MM-dd")と書くことにより、時間を表示させず、ハイフン区切りの年月日を表示させることができます。このように、ToString()の括弧内にフォーマットを定義をすることで、自由な形式で出力することができます。フォーマット定義の内容は下記の通りです。

出力内容 フォーマット定義
yyyy
MM(※大文字)
dd
時間(※24時間表記) HH
時間(※12時間表記) hh
mm(※小文字)
ss
2019年01月23日 12:34:56 F
2019年01月23日 12:34 f
2019年01月23日 D
2019/01/23 d
12:34:56 T
12:34 t

カテゴリー: C#, システム開発 | コメントする

【ワード】文書プロパティの印刷

ワードの文書を印刷すると、下記のように最終ページにファイル名・フォルダー・テンプレート・・・ページ数・単語数・文字数が印刷される事があります。




これは「文書プロパティを印刷する」にチェックが入っているからです。



 文書プロパティの印刷設定方法


1.ワード(Word)を起動し、[ファイル] - [ヘルプ] - [オプション] を選択します。




2.[Wordのオプション] が起動したら [表示] - [印刷オプション] の中にある [文書プロパティの印刷] のチェックを オン(印刷する)/オフ(印刷しない)する事で設定できます。



カテゴリー: システム開発, ワード | コメントする

【C#】セーブファイルダイアログ-タイトル設定

新しいファイルを作成する際、ダイアログを表示してフォルダ・ファイル名を指定させる方法は「【C#】セーブファイルダイアログ-初期フォルダの設定」を参照下さい。(参考:【C#】オープンファイルダイアログ-タイトル設定

ここでは、下記ダイアログのようにダイアログのタイトルする方法を記載します。




 タイトル設定


タイトルの設定をするには~.Titleを用い、ダイアログを表示(ShowDialog)する前に記述します。

SFD.Title = "保存先とファイル名を設定してください";

一連の処理を通して記述すると下記となります。

/* インスタンスの初期化 */
SaveFileDialog SFD = new SaveFileDialog();

/* タイトルの設定 */
SFD.Title = "保存先とファイル名を設定してください";

/* 初期フォルダ:マイドキュメント */
SFD.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

/* ダイアログを表示し「開く」場合 */
if (SFD.ShowDialog() == DialogResult.OK)
{
  /* ファイル名を表示する */
  MessageBox.Show(SFD.FileName);
}

カテゴリー: C#, システム開発 | コメントする