2013-11-15 32 views
0

下午好成員, 我想作生日查看數據庫中的生日或紀念日日期範圍vb.net中發生

以下信息與功能

class person 

public property dateofbirth as nullable(of datetime) 

end class 


public function allperson() as Ienumrable(of preson) implements databank.allpersons 

return _contact.values.oftype(of person).orderby(function(c) c.name) 

end function 




    public function birthday (startdate as date, Enddate as date) as IEnumerable (of Person) Implements databank.birthdaybetween 


/.... ??? 

    end function 

給出一個函數這裏是我的問題的照片 http://s8.postimg.org/vn4ufpmqt/problem.png

感謝 伊利莎

+0

這不是「相當」一樣的生日悖論(引用標籤) –

+0

@Elisa:請更具體地說明您期望作爲生日方法的結果。數據的一些例子會有幫助。 – Markus

回答

0

假設生日函數返回所有誰慶祝他們的開始日期和結束日期之間的時間框架生日的人,下面的查詢應該工作:

Return (From x In allperson() _ 
     Where x.DateOfBirth.HasValue AndAlso x.DateOfBirth.Value.Year <= startdate.Year 
      AndAlso ((startdate.Month = x.DateOfBirth.Value.Month AndAlso startdate.Day <= x.DateOfBirth.Value.Day) _ 
       OrElse (startdate.Month < x.DateOfBirth.Value.Month)) _ 
      AndAlso ((x.DateOfBirth.Value.Month = enddate.Month AndAlso x.DateOfBirth.Value.Day <= enddate.Day) _ 
       OrElse x.DateOfBirth.Value.Month < enddate.Month)).AsEnumerable() 
+0

這裏是問題的圖片 http://s8.postimg.org/vn4ufpmqt/problem.png – Elisa9180

+0

我已更新我的示例,以便它也適用於可以爲空的DateTime DateOfBirth。 – Markus