Ich versuche, in Visual Basic eine Datumsmathematik zu erstellen. Die NETWORKDAYS
Funktion in Excel ist genau das, was ich brauche. Gibt es eine äquivalente oder ähnliche Methode in .NET?Gibt es in Excel eine .NET-Methode, die NETWORKDAYS entspricht?
1
A
Antwort
2
Schauen Sie diese an:
private int CountWorkDays(DateTime startDate, DateTime endDate, List<DateTime> excludedDates)
{
int dayCount = 0;
int inc = 1;
bool endDateIsInPast = startDate > endDate;
DateTime tmpDate = startDate;
DateTime finiDate = endDate;
if(endDateIsInPast)
{
// Swap dates around
tmpDate = endDate;
finiDate = startDate;
// Set increment value to -1, so it DayCount decrements rather
// than increments
inc = -1;
}
while(tmpDate <= finiDate)
{
if(!excludedDates.Contains(tmpDate))
{
dayCount += inc;
}
// Move onto next day
tmpDate = tmpDate.AddDays(1);
}
return dayCount;
}
0
Nicht so weit, wie ich weiß, aber es wird nicht zu schwer, mit einem zu kommen.
Angenommen, Samstag und Sonntag sind aus, berechnen Sie die Anzahl der Tage im Monat, durchlaufen Sie die Daten, subtrahieren Sie die Anzahl der Tage im Monat, wenn das aktuelle Datum Sonntag oder Samstag ist oder mit dem Wert im Ferien-Array übereinstimmt .
1
Hier haben Sie zwei Artikel als ein guter Ausgangspunkt:
Optimized Calculation Algorithm for Business Days
und
Verwandte Themen
- 1. Gibt es eine Ruby-Methode, die drop_while für Hashes entspricht?
- 2. Gibt es eine nicht veraltete Methode, die didRotateFromInterfaceOrientation entspricht
- 3. Gibt es eine Java-Bibliothek entspricht Dateibefehl in Unix
- 4. Gibt es ein S4, das unlist() entspricht?
- 5. Gibt es eine scala entspricht Pythons Liste Verständnis
- 6. Gibt es einen Vim, der Bash '! $' Entspricht?
- 7. Gibt es eine Möglichkeit, R in Excel auszuführen?
- 8. Excel COUNTIFS entspricht in SQL Server
- 9. Gibt es in Excel eine Koaleszenz-ähnliche Funktion?
- 10. Gibt es eine Kartenfunktion?
- 11. Excel VBA entspricht einem Vektor
- 12. Gibt es in Swave einen R Markdown, der \ Sexpr {} entspricht?
- 13. Gibt es eine Möglichkeit, Excel VBA-Funktion über Python aufzurufen?
- 14. Gibt es eine Excel-Einfügefunktion für SUMPRODUCT IF?
- 15. Gibt es eine Möglichkeit, Excel-Spaltenbreiten mit pandas.ExcelWriter automatisch anzupassen?
- 16. Gibt es eine automatische Vervollständigung in VBA?
- 17. Gibt es einen Vordergrund, der dem Hintergrundbild in CSS entspricht?
- 18. Gibt es eine Julia, die der Numpsis-Slicing-Syntax von NumPy entspricht (...)?
- 19. Gibt es eine Eclipse, die dem Visual Studio "Command Window" entspricht?
- 20. Gibt es eine standardmäßige ReSharper-Codestildefinition, die allen StyleCop-Anforderungen entspricht?
- 21. Gibt es eine .NET-API, die der "Build 2.0" -REST-API für TFS 2015 entspricht?
- 22. Gibt es irgendwo eine Java-Bibliothek, die genau die Formatzeichenfolgen von Excel unterstützt?
- 23. Wie kann ich diese Methode verbessern? Gibt es eine native PHP-Methode, die dem Bereich entspricht?
- 24. Wie erkennt man, ob eine Excel-Datei den Spezifikationen von Excel 95 oder Excel 97 entspricht?
- 25. Gibt es eine Möglichkeit, eine Zeichenfolge in Node.js regexp-Anführungszeichen?
- 26. Gibt es ein "Präprozessor" -Symbol, das dem/unsafe-Flag entspricht?
- 27. Gibt es ein LINQPad, das einer DataContext-Klasse entspricht?
- 28. Gibt es ein CSS, das 'align = "center"' entspricht?
- 29. Gibt es ein iPhone, das dem NSTokenField-Steuerelement entspricht?
- 30. Gibt es ein R, das dem Bash-Befehl mehr entspricht?
Die letzte Hälfte der Methode kann ersetzt werden mit 'return (finiDate.Su btract (tmpDate) .Tage + 1 - excludedDates.Where (o => o> = tmpDate && o <= finiDate) .Count()); '- das sind die gesamten Tage abzüglich der ausgeschlossenen Tage im Bereich. –