怎样得到一个年月对应的起始日期呢?---在线等 (10分)

  • 主题发起人 主题发起人 quietosea
  • 开始时间 开始时间
Q

quietosea

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样得到一个年月对应的起始日期呢?如: '200302'对应于'2003年02月01日至2003年02月28日'  , '200303'对应于'2003年03月01日至2003年03月31日'  
 
实际主要是得到月的最后一天:<br>给下面的函数,搞定:<br><br>function zgdate_IsLeapYear(AYear: Integer): Boolean;<br>begin<br>&nbsp; Result := (AYear mod 4 = 0) and ((AYear mod 100 &lt;&gt; 0) or (AYear mod 400 = 0));<br>end;<br><br>function zgdate_DaysPerMonth(AYear, AMonth: Integer): Integer;<br>const<br>&nbsp; DaysInMonth: array[1..12] of Integer =<br>&nbsp; &nbsp; (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);<br>begin<br>&nbsp; Result := DaysInMonth[AMonth];<br>&nbsp; if (AMonth = 2) and IsLeapYear(AYear) then Inc(Result); { leap-year Feb is special }<br>end;<br><br>
 
01~ 下個月的01-1天
 
uses DateUtils;<br><br>01至DaysInMonth(value:TDateTime);
 
// AYear, AMonth: 给定的年月<br>// BeginDate, EndDate: 对应的起止日期<br>procedure GetDateRangeOfMonth( AYear, AMonth: Word; var BeginDate, EndDate: TDate );<br>begin<br>&nbsp; // 本月1号为开始日期<br>&nbsp; BeginDate := EncodeDate( AYear, AMonth, 1 );<br>&nbsp; <br>&nbsp; if AMonth&lt;12 then<br>&nbsp; &nbsp; // 如果是12月,则为次年1月1日减1<br>&nbsp; &nbsp; EndDate := EncodeDate( AYear+1, 1, 1 ) - 1<br>&nbsp; else<br>&nbsp; &nbsp; // 否则为次月1日减1<br>&nbsp; &nbsp; EndDate := EncodeDate( AYear, AMonth+1, 1 ) - 1;<br>end;<br>
 
DaysInAMonth(2003,3)
 
接受答案了.
 
后退
顶部