输入一个日期,怎么在程序或者SQL里面确定这天所属的周的开始日期与结束日期?怎么确定这个月的结束日期?

解决方案 »

  1.   

    i := DateOfWeek(Now);
    if i = 1 then 
      ShowMessage('今天是周日')
    else if i = 2 then
      ShowMessage('今天是周一');
      

  2.   

    MonthDays[IsLeapYear(Y), M] 能得到这个月有多少天,再判断录入的日期的日是不是等于这个月的天数,如果相等于就是月末
      

  3.   

    {
      CurDate由用户输入
    }var
      WeekBeginDate, WeekEndDate: TDatetime;
      
      ...
      WeekBeginDate := IncDay(CurDate, 1 - DayOfTheWeek(CurDate));
      WeekEndDate := IncDay(CurDate, 7 - DayOfTheWeek(CurDate));
      ...var
      CurYear, CurMonth, CurDay, DaysOfMonth: Word;
      MonthEndDate: TDatetime;  ...
      DecodeDate(CurDate, CurYear, CurMonth, CurDay);
      DaysOfMonth := DaysInAMonth(CurYear, CurMonth);
      MonthEndDate := IncDay(CurDate, DaysOfMonth - CurDay);
      ...
      

  4.   

    得到周一:
      
      if dayofweek(date)=1 then week1:=date-6 //具体是6还是7你自己算. 
        else week1:=date-dayofweek(date);得到周日:
       week7:=week1+6;得到月初:参考ddqqyy(ddqqyy)的办法;
      月初是curmonth的1日.
      月末是curmonth+1月的第一日减去1天,当然,还要考虑12月和1月.
      

  5.   

    好了,告诉你一个比较酷的单元DateUtils,里面有大量的日期函数:
    1.返回星期一的日期(给定日期所在周):StartOfTheWeek(now);
    2.返回星期日的日期(给定日期所在周):EndOfTheWeek(now);
      

  6.   

    针对月份的:
    1.StartOfTheMonth(now)
    2.EndOfTheMonth(now)
    针对年的:
    1.StartOfTheYear(now)
    2.EndOfTheYear(now)