2017-03-14 5 views
0

年を取得したいが、がDateTimeにないので、ここで自分の運を試している。私がやっている は、取得日に差し引きますので、今日次に、このC# - 2つの日付を取得してから年を引く

DateTime acquisition = DateTime.Parse(Request.Form["inputAcquisition"]); 

のような形から日付を日付を入力イムです。

DateTime now = DateTime.Now; 

これは私が混乱している部分です。私はいくつかの値を受信して​​いますが、それは2819:012:23123:1246 //ではない、実際のデータのちんぷんかんぷんのようなものだ

TimeSpan difference = now - acquisition ; 

それらを差し引きます。

年の差異はどうすればよいですか?私が2014年3月20日に入力した場合、今年から減算すると、出力として3が得られますか?

+0

私の質問は、その質問のように複雑ではありません。私はちょうど2年と73日の間に '2.2'として年を取得したい – WTFZane

+0

チェック:http://stackoverflow.com/questions/15957984/format-a-timespan-with-years – NoChance

答えて

0

用途:

//Option 1 - Just Years only 
DateTime current = DateTime.Now; 
DateTime d = new DateTime(2014, 2, 20); 
int yearDiff = current.Year - d.Year; 
Console.WriteLine("Difference in Years: " + yearDiff); 

// Option 2 - More precise 
long diff = current.Ticks - d.Ticks; 
DateTime yearDiff2 = new DateTime(diff); 
Console.WriteLine("Difference in Years: " + yearDiff2.Year); 

同様の質問:Calculate the difference between two dates and get the value in years?

+0

あなたが参照を追加することを忘れてしまったらto this [http://stackoverflow.com/questions/3152977/calculate-the-difference-between-two-dates-and-get-the-value-in-years] –

+0

私はオプション1を使用しました。うるう年があれば問題やトラブルはありますか? – WTFZane

+0

うるう年は問題ありません。最初の選択肢では、年だけを考慮する。 2番目のオプションでは、月、日、時間などを考慮し、年の正確な差を与えます。たとえば、入力が2014年1月1日の場合、最初のオプションの出力は3(2017 - 2014)、2番目のオプションは4(月、日、時間などを考慮して)です。 –

1

TimeSpanには、2回の間に多くのティックが経過したことを示すプロパティがあります。 .TotalDaysを使用して、表す日数を取得することができます。グレゴリオ暦では、年にうまくマッピングされません(およその年数は365.24で割ります)。

年の意味を決める必要があります。 1月1日が2つの日付の間に何度も渡されましたか?暦年(2017 - 2014 = 3)の違いは?その他、以下のよう

関連する問題