private void Kikan_Keisan() { if (作成年 < 2 || (作成月 < 1 || 作成月 > 12) || (作成締日 < 1 || 作成締日 > 31)) { this.ErrorMessage = "入力値エラーです。もう一度入力してください。"; MessageBox.Show("入力値エラーです。もう一度入力してください。"); SetFocusToTopControl(); ReturnValue = 0; return; } else { if (作成締日 < 31) { string Date = 作成年.ToString() + "/" + 作成月.ToString() + "/" + 01; DateTime 作成年月 = Convert.ToDateTime(Date); DateTime YYY, DDD, Test; int itest, i作成締日; YYY = 作成年月.AddMonths(-1); string test = YYY.ToString(); string test2 = test; Test = Convert.ToDateTime(test).AddMonths(+1).AddDays(-1); string test3 = Test.ToString().Substring(8, 2); itest = Convert.ToInt32(test3); i作成締日 = Convert.ToInt32(作成締日); if (itest < i作成締日) { test = test.Substring(0, 7); test = test + "/" + itest; YYY = Convert.ToDateTime(test).AddDays(+1); DDD = YYY.AddMonths(+1).AddDays(-1); 集計期間From = YYY; 集計期間To = DDD; } else { test = test.Substring(0, 7); test = test + "/" + i作成締日.ToString(); YYY = Convert.ToDateTime(test).AddDays(+1); DDD = Convert.ToDateTime(test).AddMonths(+1); 集計期間From = YYY; 集計期間To = DDD; } } else if (作成締日 == 31) { string Date = 作成年.ToString() + "/" + 作成月.ToString() + "/" + 01; DateTime YYY, DDD; YYY = Convert.ToDateTime(Date); DDD = Convert.ToDateTime(Date); DDD = DDD.AddMonths(+1).AddDays(-1); 集計期間From = YYY; 集計期間To = DDD; } if (集計期間From == null || 集計期間To == null) { ReturnValue = 0; } else { DateTime Wk; DateTime p集計期間To, p集計期間From; p集計期間To = DateTime.TryParse(集計期間To.ToString(), out Wk) ? Wk : DateTime.Today; p集計期間From = DateTime.TryParse(集計期間From.ToString(), out Wk) ? Wk : DateTime.Today; ReturnValue = 1; TimeSpan span = p集計期間To - p集計期間From; 期間日数 = span.Days; } } }
private void Lost_Month(object sender, RoutedEventArgs e) { if (作成月 == null) { string Date; int iDate; DateTime MM; MM = DateTime.Today; Date = Convert.ToString(MM); Date = Date.Substring(5, 2); iDate = Convert.ToInt32(Date); 作成月 = iDate.ToString(); } else { int?換月 = -1; if (!string.IsNullOrEmpty(作成月)) { 換月 = AppCommon.IntParse(作成月); } //再入力処理 if (換月 == 0) { string Date; int iDate; DateTime MM; MM = DateTime.Today; Date = Convert.ToString(MM); Date = Date.Substring(5, 2); iDate = Convert.ToInt32(Date); 作成月 = iDate.ToString(); } //再入力時のエラー処理 //初期値0ではエラー処理が通らないので-1をセット if (換月 < 1 || 換月 > 12) { if (換月 == -1) { string Date; int iDate; DateTime MM; MM = DateTime.Today; Date = Convert.ToString(MM); Date = Date.Substring(5, 2); iDate = Convert.ToInt32(Date); 作成月 = iDate.ToString(); } } } if (!string.IsNullOrEmpty(作成締日)) { //締日入力時 //メソッドで期間計算 DateFromTo ret = AppCommon.GetDateFromTo(Convert.ToInt32(作成年), Convert.ToInt32(作成月), Convert.ToInt32(作成締日)); if (ret.Result == false || ret.Kikan > 31) { this.ErrorMessage = "入力値エラーです。もう一度入力してください。"; MessageBox.Show("入力値エラーです。もう一度入力してください。"); 作成月 = null; SetFocusToTopControl(); return; } 集計期間From = ret.DATEFrom; 集計期間To = ret.DATETo; } else { //全締日選択時 例外処理 int?全締日時作成月 = 0; if (作成月 != null) { 全締日時作成月 = AppCommon.IntParse(作成月); if (全締日時作成月 < 1 || 全締日時作成月 > 12) { this.ErrorMessage = "入力値エラーです。もう一度入力してください。"; MessageBox.Show("入力値エラーです。もう一度入力してください。"); 作成月 = null; SetFocusToTopControl(); return; } } //全締日選択時 string Date = 作成年.ToString() + "/" + 全締日時作成月 + "/" + "01"; DateTime YYY, DDD; YYY = Convert.ToDateTime(Date); DDD = Convert.ToDateTime(Date); DDD = DDD.AddMonths(+1).AddDays(-1); 集計期間From = YYY; 集計期間To = DDD; } //集計年月を作成 Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS"); int num = sjisEnc.GetByteCount(作成月); if (!string.IsNullOrEmpty(作成締日)) { int?p変換作成締日 = AppCommon.IntParse(作成締日); //文字のバイト数が1の場合、月に0を足して表示 if (num == 1) { 集計年月 = Convert.ToInt32(作成年 + "0" + 作成月); } else { 集計年月 = Convert.ToInt32(作成年 + 作成月); } } else { //文字のバイト数が1の場合、月に0を足して表示 if (num == 1) { 集計年月 = Convert.ToInt32(作成年 + "0" + 作成月); } else { 集計年月 = Convert.ToInt32(作成年 + 作成月); } } }
//作成月がNullの場合は今月の月を挿入 private void Lost_Month(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(作成年)) { string Date; int iDate; DateTime YYYY; YYYY = DateTime.Today; Date = Convert.ToString(YYYY); Date = Date.Substring(0, 4); iDate = Convert.ToInt32(Date); 作成年 = iDate.ToString(); } if (string.IsNullOrEmpty(作成月)) { string Date; int iDate; DateTime MM; MM = DateTime.Today; Date = Convert.ToString(MM); Date = Date.Substring(5, 2); iDate = Convert.ToInt32(Date); 作成月 = iDate.ToString(); } if (!string.IsNullOrEmpty(作成締日)) { int?換締日 = Convert.ToInt32(作成締日); if (換締日 < 31) { string Date = 作成年.ToString() + "/" + 作成月.ToString() + "/" + 01; DateTime CheckDate; if (!DateTime.TryParse(Date, out CheckDate)) { return; } DateTime 作成年月 = Convert.ToDateTime(Date); DateTime YYY, DDD, Test; int itest, i作成締日; YYY = 作成年月.AddMonths(-1); string test = YYY.ToString(); string test2 = test; Test = Convert.ToDateTime(test).AddMonths(+1).AddDays(-1); string test3 = Test.ToString().Substring(8, 2); itest = Convert.ToInt32(test3); i作成締日 = Convert.ToInt32(作成締日); if (itest < i作成締日) { test = test.Substring(0, 7); test = test + "/" + itest; YYY = Convert.ToDateTime(test).AddDays(+1); DDD = YYY.AddMonths(+1).AddDays(-1); 集計期間From = YYY; 集計期間To = DDD; } else { test = test.Substring(0, 7); test = test + "/" + i作成締日.ToString(); YYY = Convert.ToDateTime(test).AddDays(+1); DDD = Convert.ToDateTime(test).AddMonths(+1); 集計期間From = YYY; 集計期間To = DDD; } } else if (換締日 == 31) { string Date = 作成年.ToString() + "/" + 作成月.ToString() + "/" + 01; DateTime CheckDate; if (!DateTime.TryParse(Date, out CheckDate)) { return; } DateTime YYY, DDD; YYY = Convert.ToDateTime(Date); DDD = Convert.ToDateTime(Date); DDD = DDD.AddMonths(+1).AddDays(-1); 集計期間From = YYY; 集計期間To = DDD; } } }
//作成月がNullの場合は今月の月を挿入 private void Lost_Month(object sender, RoutedEventArgs e) { if (作成月 == null) { string Date; int iDate; DateTime MM; MM = DateTime.Today; Date = Convert.ToString(MM); Date = Date.Substring(5, 2); iDate = Convert.ToInt32(Date); 作成月 = iDate.ToString(); } else { int?換月 = -1; if (!string.IsNullOrEmpty(作成月)) { 換月 = AppCommon.IntParse(作成月); } //再入力処理 if (換月 == 0) { string Date; int iDate; DateTime MM; MM = DateTime.Today; Date = Convert.ToString(MM); Date = Date.Substring(5, 2); iDate = Convert.ToInt32(Date); 作成月 = iDate.ToString(); } //再入力時のエラー処理 //初期値0ではエラー処理が通らないので-1をセット if (換月 < 1 || 換月 > 12) { if (換月 == -1) { string Date; int iDate; DateTime MM; MM = DateTime.Today; Date = Convert.ToString(MM); Date = Date.Substring(5, 2); iDate = Convert.ToInt32(Date); 作成月 = iDate.ToString(); } } } if (!string.IsNullOrEmpty(作成締日)) { //締日入力時 //メソッドで期間計算 DateFromTo ret = AppCommon.GetDateFromTo(Convert.ToInt32(作成年), Convert.ToInt32(作成月), Convert.ToInt32(作成締日)); if (ret.Result == false || ret.Kikan > 31) { this.ErrorMessage = "入力値エラーです。もう一度入力してください。"; MessageBox.Show("入力値エラーです。もう一度入力してください。"); SetFocusToTopControl(); return; } 集計期間From = ret.DATEFrom; 集計期間To = ret.DATETo; } else { //全締日選択時 string Date = 作成年.ToString() + "/" + 作成月.ToString() + "/" + 01; DateTime YYY, DDD; YYY = Convert.ToDateTime(Date); DDD = Convert.ToDateTime(Date); DDD = DDD.AddMonths(+1).AddDays(-1); 集計期間From = YYY; 集計期間To = DDD; } }