Skip to content

Commit 823bb27

Browse files
committed
fix
1 parent b3e1ad9 commit 823bb27

File tree

1 file changed

+11
-19
lines changed

1 file changed

+11
-19
lines changed

csharp/ToolGood.Algorithm/MyDate.cs

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,24 +43,6 @@ public sealed class MyDate
4343
private MyDate()
4444
{ }
4545

46-
/// <summary>
47-
/// 构造函数
48-
/// </summary>
49-
/// <param name="year">年</param>
50-
/// <param name="month">月</param>
51-
/// <param name="day">日</param>
52-
/// <param name="hour">时</param>
53-
/// <param name="minute">分</param>
54-
/// <param name="second">秒</param>
55-
public MyDate(int year, int month, int day, int hour, int minute, int second)
56-
{
57-
Year = year;
58-
Month = month;
59-
Day = day;
60-
Hour = hour;
61-
Minute = minute;
62-
Second = second;
63-
}
6446
/// <summary>
6547
/// 构造函数
6648
/// </summary>
@@ -316,7 +298,9 @@ public TimeSpan ToTimeSpan()
316298
/// <returns></returns>
317299
public MyDate AddYears(int year)
318300
{
319-
return new MyDate(ToDateTime().AddYears(year));
301+
var t = (this.Year ?? 0) + year;
302+
return new MyDate(t, Month, Day, Hour, Minute, Second);
303+
//return new MyDate(ToDateTime().AddYears(year));
320304
}
321305

322306
/// <summary>
@@ -326,6 +310,10 @@ public MyDate AddYears(int year)
326310
/// <returns></returns>
327311
public MyDate AddMonths(int month)
328312
{
313+
var t = (this.Month ?? 0) + month;
314+
if (t >= 1 && t <= 12) {
315+
return new MyDate(Year, t, Day, Hour, Minute, Second);
316+
}
329317
return new MyDate(ToDateTime().AddMonths(month));
330318
}
331319

@@ -337,6 +325,10 @@ public MyDate AddMonths(int month)
337325
public MyDate AddDays(int day)
338326
{
339327
if (Year != null && Year > 1900) {
328+
var d = (this.Day ?? 0) + day;
329+
if (d >= 1 && d <= 28) {
330+
return new MyDate(Year, Month, d, Hour, Minute, Second);
331+
}
340332
return new MyDate(ToDateTime().AddDays(day));
341333
}
342334
return new MyDate(ToTimeSpan().Add(new TimeSpan(day, 0, 0, 0)));

0 commit comments

Comments
 (0)