@@ -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