94 lines
1.7 KiB
C#
94 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using MarketData.Utils;
|
|
|
|
namespace MarketData.MarketDataModel
|
|
{
|
|
public class DivExDateItem
|
|
{
|
|
public DivExDateItem()
|
|
{
|
|
}
|
|
public String Symbol
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public DateTime DivExDate
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
}
|
|
public class DividendHistory : List<DividendHistoryItem>
|
|
{
|
|
public DividendHistory()
|
|
{
|
|
}
|
|
public DividendHistory(List<DividendHistoryItem> items)
|
|
{
|
|
foreach(DividendHistoryItem item in items)Add(item);
|
|
}
|
|
public bool HasConsecutivePayments(int requiredConsecutiveMonths)
|
|
{
|
|
if(0==Count||Count<requiredConsecutiveMonths+1)return false;
|
|
DateGenerator dateGenerator=new DateGenerator();
|
|
DateTime initialDate=this[0].DivExDate;
|
|
for(int index=1;index<requiredConsecutiveMonths+1;index++)
|
|
{
|
|
initialDate-=new TimeSpan(DateTime.DaysInMonth(initialDate.Year,initialDate.Month),0,0,0);
|
|
if(!initialDate.Month.Equals(this[index].DivExDate.Month))return false;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
public class DividendHistoryItem
|
|
{
|
|
public DividendHistoryItem()
|
|
{
|
|
}
|
|
public String Symbol
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public String DividendType
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public double? CashAmount
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public DateTime? DeclarationDate
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public DateTime? RecordDate
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public DateTime? PaymentDate
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public DateTime DivExDate
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public DateTime Modified
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
}
|
|
}
|