如:2006年3月31日--2007年3月31日
分别算出:第一季度从_年_月_日 到 _年_月_日 (3个月)
第二季度从_年_月_日 到 _年_月_日
第三季度从_年_月_日 到 _年_月_日
第四季度从_年_月_日 到 _年_月_日
第一个月从_年_月_日 到 _年_月_日
.
.
.
第十二个月从_年_月_日 到 _年_月_日 本月的第一周从_年_月_日 到 _年_月_日
.
.
.
本月的第四周(或第五周)从_年_月_日 到 _年_月_日 多谢!
分别算出:第一季度从_年_月_日 到 _年_月_日 (3个月)
第二季度从_年_月_日 到 _年_月_日
第三季度从_年_月_日 到 _年_月_日
第四季度从_年_月_日 到 _年_月_日
第一个月从_年_月_日 到 _年_月_日
.
.
.
第十二个月从_年_月_日 到 _年_月_日 本月的第一周从_年_月_日 到 _年_月_日
.
.
.
本月的第四周(或第五周)从_年_月_日 到 _年_月_日 多谢!
解决方案 »
- 合并表的问题
- 变量值如何跨类?
- caoruomou兄请进来结帐,谢谢!!
- 怎么用程序进行COM+组件管理
- 各位大虾用过深圳明华公司的非接触式ic卡吗?几个分店的数据库联网大伙有好的解决方案吗?
- 关于D2009 的字符串数据类型 Char,AnsiChar.string,AnsiString
- 菜鸟问题,工作需要,转学Delphi做WEB开发,请问各位哪里有详细一点的关于WebSnap的资料!
- 如何把文本用于语音读出
- 如何自动配置ODBC数据源(ACCESS)
- :急急急!!!请问那位大哥有FTP的源程序,请给我一个,谢谢,急用!!!
- telnet 21端口时发现一个奇怪的问题
- 请教:关于在AdoQuery的参数中传递中文常量值遇到的问题...急呀.
procedure TForm1.Button3Click(Sender: TObject);
var
dtBegin,dtEnd,dtTemp:TDateTime;
iDays,iDays1:integer;
iCnt,iCnt1:integer;
iCurWeek,iLastPos:integer;
begin
dtBegin:=StrToDateTime(Edit2.Text)+1;
dtEnd:=StrToDateTime(Edit3.Text);
dtTemp:=dtBegin;
iCnt:=1;
while true do
begin
iDays:=DaysInMonth(dtTemp);
Memo2.Lines.Add('第'+IntToStr(iCnt)+'个月:'+FormatDateTime('yyyy-mm-dd',dtTemp)+'----'+FormatDateTime('yyyy-mm-dd',(dtTemp+iDays-1)));
iDays1:=1;
iCurWeek:=WeekOfTheMonth(dtTemp);
iLastPos:=0;
iCnt1:=1;
while true do
begin
while(WeekOfTheMonth(dtTemp+iDays1)=iCurWeek)do
inc(iDays1);
iCurWeek:=WeekOfTheMonth(dtTemp+iDays1);
if MonthOf(dtTemp+iDays1)<>MonthOf(dtTemp) then
begin
Memo2.Lines.Add(' 本月第'+IntToStr(iCnt1)+'周:'+FormatDateTime('yyyy-mm-dd',dtTemp+iLastPos)+'----'+FormatDateTime('yyyy-mm-dd',(dtTemp+iDays-1)));
break;
end else
begin
Memo2.Lines.Add(' 本月第'+IntToStr(iCnt1)+'周:'+FormatDateTime('yyyy-mm-dd',dtTemp+iLastPos)+'----'+FormatDateTime('yyyy-mm-dd',(dtTemp+iDays1-1)));
inc(iCnt1);
iLastPos:=iDays1;
end;
end;
inc(iCnt);
dtTemp:=incMonth(dtTemp);
if dtTemp>dtEnd then
break;
end;end;
function EndOfTheYear(const AValue: TDateTime): TDateTime;
function StartOfAYear(const AYear: Word): TDateTime;
function EndOfAYear(const AYear: Word): TDateTime;function StartOfTheMonth(const AValue: TDateTime): TDateTime;
function EndOfTheMonth(const AValue: TDateTime): TDateTime;
function StartOfAMonth(const AYear, AMonth: Word): TDateTime;
function EndOfAMonth(const AYear, AMonth: Word): TDateTime;function StartOfTheWeek(const AValue: TDateTime): TDateTime; {ISO 8601}
function EndOfTheWeek(const AValue: TDateTime): TDateTime; {ISO 8601}
function StartOfAWeek(const AYear, AWeekOfYear: Word; {ISO 8601}
const ADayOfWeek: Word = 1): TDateTime;
function EndOfAWeek(const AYear, AWeekOfYear: Word; {ISO 8601}
const ADayOfWeek: Word = 7): TDateTime;function StartOfTheDay(const AValue: TDateTime): TDateTime;
function EndOfTheDay(const AValue: TDateTime): TDateTime;
function StartOfADay(const AYear, AMonth, ADay: Word): TDateTime; overload;
function EndOfADay(const AYear, AMonth, ADay: Word): TDateTime; overload;
function StartOfADay(const AYear, ADayOfYear: Word): TDateTime; overload;
function EndOfADay(const AYear, ADayOfYear: Word): TDateTime; overload;{ This of that functions }function MonthOfTheYear(const AValue: TDateTime): Word;
function WeekOfTheYear(const AValue: TDateTime): Word; overload; {ISO 8601}
function WeekOfTheYear(const AValue: TDateTime; {ISO 8601}
var AYear: Word): Word; overload;
function DayOfTheYear(const AValue: TDateTime): Word;
function HourOfTheYear(const AValue: TDateTime): Word;
function MinuteOfTheYear(const AValue: TDateTime): LongWord;
function SecondOfTheYear(const AValue: TDateTime): LongWord;
function MilliSecondOfTheYear(const AValue: TDateTime): Int64;function WeekOfTheMonth(const AValue: TDateTime): Word; overload; {ISO 8601x}
function WeekOfTheMonth(const AValue: TDateTime; var AYear, {ISO 8601x}
AMonth: Word): Word; overload;
function DayOfTheMonth(const AValue: TDateTime): Word;
function HourOfTheMonth(const AValue: TDateTime): Word;
function MinuteOfTheMonth(const AValue: TDateTime): Word;
function SecondOfTheMonth(const AValue: TDateTime): LongWord;
function MilliSecondOfTheMonth(const AValue: TDateTime): LongWord;function DayOfTheWeek(const AValue: TDateTime): Word; {ISO 8601}
function HourOfTheWeek(const AValue: TDateTime): Word; {ISO 8601}
function MinuteOfTheWeek(const AValue: TDateTime): Word; {ISO 8601}
function SecondOfTheWeek(const AValue: TDateTime): LongWord; {ISO 8601}
function MilliSecondOfTheWeek(const AValue: TDateTime): LongWord; {ISO 8601}
MonthOfTheYear()来判断分割。1--3,4--6,7--9,10--12,4个区间来分。周计算,到周五,那显示的时候改下: if MonthOf(dtTemp+iDays1)<>MonthOf(dtTemp) then
begin
Memo2.Lines.Add(' 本月第'+IntToStr(iCnt1)+'周:'+FormatDateTime('yyyy-mm-dd',dtTemp+iLastPos)+'----'+FormatDateTime('yyyy-mm-dd',(dtTemp+iDays-3)));
break;
end else
begin
Memo2.Lines.Add(' 本月第'+IntToStr(iCnt1)+'周:'+FormatDateTime('yyyy-mm-dd',dtTemp+iLastPos)+'----'+FormatDateTime('yyyy-mm-dd',(dtTemp+iDays1-3)));
inc(iCnt1);
iLastPos:=iDays1;
end;
iDays:=DaysInMonth(dtTemp);
[Error] CESmain.pas(2645): Incompatible types: 'Word' and 'TDateTime'
咋回事呢?劳驾再帮忙看一下。晕死我了。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ImgList, Menus, ToolWin,StdCtrls, ExtCtrls,
OleServer, OutlookXP, IdBaseComponent, IdMailBox, Grids, DBGrids, DB,
DBTables, DBCtrls, ExcelXP, AxCtrls, OleCtrls, VCF1, Mask, dbcgrids,
Buttons,DateUtils,TeEngine, Series, TeeProcs, Chart;看好DateUtils的位置,在这个位置上通不过,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ImgList, Menus, ToolWin,StdCtrls, ExtCtrls,
OleServer, OutlookXP, IdBaseComponent, IdMailBox, Grids, DBGrids, DB,
DBTables, DBCtrls, ExcelXP, AxCtrls, OleCtrls, VCF1, Mask, dbcgrids,
Buttons,TeEngine, Series, TeeProcs, Chart, DateUtils,;
换了个位置,放到最后面就通过了,可能是BUG吧,呵呵,真服了!
你的代码没有问题,是delphi的问题,谢谢你gzmhero(hihihi),!