質問

レガシアプリケーション(クラシックASP)に基づいた新しいASP.NET Webアプリケーションを構築しています。 5年前にこのコード4を作成した人々は、DateDiffのような多くのVBScript関数を使用しました。

現在、日付を使用して多くの計算を行うシミュレーターを開発しています。そして、VB 6のようにC#の月の違いを簡単に取得する方法がないため、これらの日付の間に迷惑な違いがあります。

したがって、ASP.NET WebアプリケーションでMicrosoft.VisualBasic名前空間からDateAndTime.DateDiffを使用するパスを選択します。

あなたは、それに何らかの意味があるかどうか知っていますか?私はこのアプローチに少し関心があります。

乾杯、

役に立ちましたか?

解決

唯一の意味は、デプロイメントに別のアセンブリを追加し、多くのC#開発者(コードの保守が必要な他の人)が認識していない機能を使用することです。しかし、個人的に私はそれがあまり間違っているとは思わない。通常、MSDNライブラリのドキュメントは優れていますが、使用する理由を説明する場合は、コメントをいくつか追加することもできます。

編集:また、Microsoft.VisualBasicは.NETのためにゼロから実装されたことに注意したいです。古代のコードは含まれていません。

他のヒント

1つの可能性は、Itayが示したようにTimeSpanを使用することですが、30.4375(月あたりの平均日数)で除算し、小数月を無視します。これは私が現在取り組んでいることに十分に近いですが、あなたのニーズに基づいて十分に正確ではないかもしれません。たとえば、2月1日と3月1日の差は0で、これは(30.4375日月の定義に基づいて)正しいです。ただし、特定の目的には正しくない場合があります。

VisualBasic名前空間にあるクラスは使用しないでください。

.netライブラリはTimeSpanと呼ばれるはるかに優れたソリューションを提供します。次のように使用します。(dt1およびdt2は DateTime s)

 TimeSpan ts = dt2 - dt1; //Or ts = dt1.Subtract(dt2)

手伝いたい限り、インテリジェンスを一目見れば残りがわかると思います(Visual Studioでこれを書いて、 ts。を追加してください)

実際の月のカウントのための

編集(y2-y1)* 12 + m2-m1 、大したことは何ですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top