2013-01-15 62 views
-2

我有一張桌子,上面有一些資產(產品)的日常價格,但有一些日子沒有了。我想獲得月底價格以計算每年的價格波動率。價格波動被定義爲月末價格的標準差。如何獲得c#的月底日期?

如果缺少月末日期,例如2010年12月31日,算法必須向後搜索產品的日期並使用最近的日期作爲月末日期。

有沒有一種簡單的方法來實現這個邏輯與C#?

+0

如果一個月沒有記錄怎麼辦? –

+5

你有沒有嘗試過的東西呢? –

+1

我想我回答了一個不同的問題。你需要指定數據的存儲方式(表格是什麼?它是一個數據庫嗎?它的字段是什麼等等)。 – zmbq

回答

0

這不應該太複雜。

假設你有PriceData實例的列表,以PriceData之中:

class PriceData 
{ 
    public DateTime Date { get; set; } 
    public double Price { get; set; } 
} 

List<PriceData> prices = ... 

var lastPricePerMonth = prices.GroupBy(x => x.Date.Year * 12 + y.Date.Month) 
           .Select(x => x.OrderByDescending(y => y.Date) 
              .First()); 

這將返回最新PriceData對象每月。

0

確定抽樣表 - 如果你想月底...

DateTime theDate = DateTime.Now; // start with any date.... 
DateTime endOfMonth = new DateTime(theDate.Year, theDate.Month + 1, 1).AddDays(-1); 

然後用它在你的LINQ的。

相關問題