Frage

Ich baue eine neue ASP.NET Web-Anwendung basierend auf einem Legacy eines (Classic ASP). Die Menschen, die vor diesem Code 4, 5 Jahren bauen, verwendet, um eine Menge von VBScript-Funktionen wie DateDiff.

Im Moment arbeite ich an einem Simulator, der eine Menge von Berechnungen mit Daten der Fall ist. Und ich bin einen ärgerlichen Unterschied zwischen diesen Daten bekommen, weil ich nicht über eine leicht Weise den Unterschied zwischen Monaten in c # zu erhalten, wie sie in VB haben 6.

Also, wähle ich den Weg des DateAndTime.DateDiff von Microsoft.VisualBasic Namespace auf meiner ASP.NET Web-Anwendung verwendet wird.

Ihr Jungs wissen, ob es einige Auswirkungen auf das sind? Ich bin ein wenig besorgt mit diesem Ansatz.

Cheers,

War es hilfreich?

Lösung

Die einzige Folge ist, dass Sie eine andere Anordnung zu Ihrer Bereitstellung sind das Hinzufügen, und mit Funktionen, die viele C # -Entwickler (andere Menschen, die möglicherweise benötigen Sie den Code zu erhalten) nicht bewusst sind. Aber ich persönlich glaube nicht, dass es mit ihm viel los ist. Die Dokumentation MSDN Library ist in der Regel gut, und Sie können auch ein paar Kommentare hinzufügen, wenn Sie wollen, zu erklären, warum Ihr es zu benutzen.

Edit: Ich möchte auch darauf hinweisen, dass Microsoft.VisualBasic von Grund auf für .NET implementiert wurde. Dabei spielt es keine alten Code enthalten.

Andere Tipps

Eine Möglichkeit ist, wird die Zeitspanne zu verwenden, wie Itay angegeben, aber Division durch 30,4375 (die durchschnittliche Anzahl Tage pro Monat), ignoriert fraktionierte Monate. Das ist nahe genug für Dinge, die ich gerade arbeite, kann aber nicht genau genug sein, auf der Grundlage Ihrer Bedürfnisse. Zum Beispiel, Der Unterschied zwischen dem 1. Februar und den 1. März würde 0 sein, die (auf der Basis einer 30,4375 Tage-Monats-Definition) ist korrekt; es kann für Ihre Zwecke nicht korrekt sein, aber.

Es ist gut, dass Sie mit, dass betroffen sind, weil Sie nicht von der eingestuft im Visualbasic-Namespace verwenden sollte.

Die .net-Bibliothek bieten eine viel bessere Lösung namens Timespan, verwenden Sie es auf folgende Weise: (DT1 und DT2 sind DateTimes)

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

Soweit ich helfen möchte, glaube ich wirklich ein kurzer Blick auf die Intellisence wird Ihnen sagen, den Rest (nur dies schreibe in Visual Studio, und fügen Sie ts.)

Bearbeiten für echten Monat Zählung: (y2 - y1) * 12 + m2 - m1, was die große Sache

?
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top