我如何知道这个月有多少个星期天?(40分)

  • 主题发起人 主题发起人 dadabox1
  • 开始时间 开始时间
D

dadabox1

Unregistered / Unconfirmed
GUEST, unregistred user!
我如何知道指定的一个月有多少天,以及这个月有几个星期天呢?
哪位能帮我答一下.20分.
请列出一共有哪些日期函数.如DayOfWeek,DayOfYear等等,20分.
谢谢!
 
>一个月有多少天:

function TForm1.DaysInMonth(ADate:TDateTime):Integer;
var
MyMonth,
MyYear,
MyDay : Word;
MyDayTable : TDayTable;
tmpBool : Boolean;
begin
DecodeDate(ADate, MyYear, MyMonth, MyDay);
tmpBool := IsLeapYear(MyYear);
MyDayTable := MonthDays[tmpBool];
Result := MyDayTable[MyMonth];
end;

procedure TForm1.Button1Click(Sender: TObject);
var
MyDate : TDateTime;
tmpStr : String;
tmpInt : Integer;
begin
MyDate := Date() + 365 - (30*5);
tmpStr := FormatDateTime('mmmm yyyy',MyDate);
tmpInt := DaysInMonth(MyDate);
ShowMessage(tmpStr + '有 ' + IntToStr(tmpInt) + '天');
end;
 
我也来一招:)[:D][:D][:D]
procedure TForm1.Button1Click(Sender: TObject);
begin
; ShowMessage(IntToStr(GetDaysInMonth(now())));
end;

function TForm1.GetDaysInMonth(pToday :TDatetime):integer;
var dTemp1,dTemp2 :TDateTime;
; ; iMonth,iYear,iDay :word;
begin
; dTemp1 :=StrToDateTime(FormatDateTime('yyyy-mm-01 01:01:01',pToday));
; DecodeDate(pToday,iYear,iMonth,iDay);
; if iMonth=12 then
; begin
; ; iMonth :=1;
; ; inc(iYear);
; end
; else inc(iMonth);

; dTemp2 :=StrToDateTime(IntToStr(iYear)+'-'+IntToStr(iMonth)+'-01 01:01:01');
; result :=round(dTemp2-dTemp1); //这个地方可扩展为小时,秒...只是加以计算即可
end;
 
1.如果你用的是D6——
uses DateUtils,...

procedure TForm1.Button1Click(Sender: TObject);
var
; DT: TDateTime;
; nDay, nSunday, n: Integer;
begin
; DT := Date;
; n := DayOfWeek(StartOfTheMonth(DT));
; if n = 1 then n := 0 else n := 8 - n;
; nDay := DaysInMonth(DT);//这个DaysInMonth是Delphi自己的函数
; nSunday := (nDay - n - DayOfWeek(EndOfTheMonth(DT))) div 7 + 1;
; ShowMessage(Format('%s共有%d天,其中%d个星期天。', [FormatDateTime('YYYY"年"MM"月"', DT), nDay, nSunday]));
end;
2.DateUtils里就有200多个,自己看看吧。
 
多人接受答案了。
 
后退
顶部