Random DateTime zwischen Bereich - nicht einheitliche-Ausgabe
Implementiert habe ich die unten RandomDate, aber ich habe immer immer Werte geschlossen "Vom", Datum, habe ich wohl was verpasst hier....
public static DateTime GetRandomDate(DateTime from, DateTime to)
{
var range = new TimeSpan(to.Ticks - from.Ticks);
var rnd = new Random();
var randTimeSpan = new TimeSpan((long)(range.TotalSeconds - rnd.Next(0, (int)range.TotalSeconds)));
return from + randTimeSpan;
}
Zwar nicht die (einzige) Grund für den Fehler, der
finden Sie in diesem Beitrag? stackoverflow.com/questions/767999/...
var rnd = new Random()
Linie Kopfschmerzen verursachen, wenn Sie wollen, rufen Sie diese Methode Häufig.finden Sie in diesem Beitrag? stackoverflow.com/questions/767999/...
InformationsquelleAutor user1025852 | 2013-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man ändern zu:
Erklärung: ich habe
NextDouble()
denn es gibt eine Zahl zwischen0.0
und1.0
. Ihr Rückgabewert wird nicht eine ganze Anzahl von Sekunden in meiner Lösung. Und ich zogrnd
aus einem Feld auf die Klasse/struct. Da ist es am besten, um die Wiederverwendung einesRandom
Instanz, und nicht einen neuen erstellen jedes mal, wenn man braucht nur einen zusätzlichen Zufallszahl.InformationsquelleAutor Jeppe Stig Nielsen
Das problem ist, dass:
ist die Schaffung einer Zeitspanne von ZECKEN, nicht von SEKUNDEN.
Benötigen Sie:
(Bitte überprüfen Sie den cast zu - es muss ein double übergeben FromSeconds)
Diese Ursachen können ArgumentOutOfRangeException, wenn Bereich."TotalSeconds größer ist Int32.MaxValue
In der Tat, es funktioniert nur bis zu etwa 68 Jahren; es scheint jedoch, dass dies genug ist für die OP.
InformationsquelleAutor Matthew Watson
Dies ist, weil
Zeit
's Konstruktor, einelong
erwartet Zecken, nicht Sekunden.rnd.Next()
dauert nicht mehr lange als argument, nur intInformationsquelleAutor dasblinkenlight
Festen ArgumentOutOfRangeException:
InformationsquelleAutor musium
Dies ist für mich arbeiten. Die Tage Intervall bis 28 zu vermeiden, die mit Ausnahme Februar.
InformationsquelleAutor Carlos Toledo
Meine Idee ist, wir brauchen nur einige zufällige Zahl von ticks Hinzugefügt start-datetime erhalten ein zufälliges Datum zwischen Anfang und Ende. Also meine Lösung keine
TimeSpan
Objekte.InformationsquelleAutor Adarsha