2010-09-30 7 views
6

क्या कोई जानता है कि वर्तमान तिमाही के पहले दिन होने के लिए .NET में डेटटाइम कैसे बनाया जाए?नेट डेटटाइम वित्तीय तिमाही

+4

आप एक चौथाई कैसे परिभाषित पर पूरी तरह निर्भर जा रहा है यही कारण है कि। –

+0

आप वित्तीय तिमाही को कितने अलग तरीके से परिभाषित कर सकते हैं? – PhilBrown

उत्तर

6
public DateTime GetCurrentQuarter(DateTime date) 
{ 
    int startingMonthOfQuarter = (((date.Month - 1)/3) * 3) + 1; 

    return new DateTime(date.Year, startingMonthOfQuarter, 1); 
} 
3
 var currentTime = DateTime.Now; 
     var year = currentTime.Year; 
     DateTime[] quarterStarts = {new DateTime(year, 1, 1), new DateTime(year, 4, 1), new DateTime(year, 7, 1), new DateTime(year, 10, 1)}; 
     var currentStart = quarterStarts.Where(s => s < currentTime).Last(); 
+1

यह असफल होने जा रहा है अगर इसे 1 जनवरी को 12:00 आधी रात को ठीक कहा जाता है। यह तिमाही स्टार्ट्स परिभाषित होने के बाद वर्ष में कुछ वर्ष में बदलता है तो यह असफल होने जा रहा है। आप शायद महीने और दिन को शामिल करने के लिए अपने परीक्षण को संशोधित करना चाहते हैं। –

1

@yogesh सही है, यहाँ क्या मैं एक एसक्यूएल एसपी में उपयोग करें:

CREATE FUNCTION [dbo].[fn_startOfQtr](@dt DATETIME) 
RETURNS DATETIME AS 
BEGIN 
    declare @ret DATETIME 
    declare @qtr int 

    set @qtr = ((month(@dt)-1)/3)+1 
    set @ret = cast(str(@qtr * 3 - 2) + '/1/' + str(year(@dt)) as DATETIME) 
    return @ret 
END 
संबंधित मुद्दे