獲取當前時間,編輯當前時間,通過一定的加減運算可以實現,但是有時候想要獲得一定區間的隨機時間,可能是為了滿足隨機性,減少重複的要求,利用程序產生區間的隨機時間就非常有必要,也非常簡單,就是利用“時間加減運算”來實現。
工具/原料
知曉整個流程思路
方法/步驟
簡單思路就是調用方法,在方法中實現不同目的。
//傳入方法要求的參數數據,返回隨機時間(字符串)
RT("2015-09-23", "2015-09-23", "08:00:00", 12 * 60 * 60));
//直接調用方法,返回隨機時間(字符串)
RandomTime();
//需要傳入參數的隨機時間生成方法
private static string RT(string ymds, string ymdb, string hmss, int seconds)
{}
//無需參數的隨機時間生成方法
private static string RandomTime()
{}
簡單測試語法結構,通過1000次的隨機產生來模擬生成隨機時間。
for (int i = 0; i < 1000; i++)
{
Console.WriteLine(i + 1);
Console.WriteLine("RT產生的區間隨機時間:" + RT("2015-09-23", "2015-09-23", "08:00:00", 12 * 60 * 60));
Console.WriteLine("");
Console.WriteLine("Random產生的區間隨機時間:" + RandomTime());
Console.WriteLine("");
//停頓一段時間,是為了避免隨機時間產生的原理漏洞。
System.Threading.Thread.Sleep(700);
}
//需要傳入參數的隨機時間生成方法
//傳入參數依次是起始日期、結束日期、開始時間、間隔秒數
private static string RT(string ymds, string ymdb, string hmss, int seconds)
{
//生成起始日期和結束日期之間的隨機日期
string ymd = DateTime.Parse(ymds).AddDays(new Random().Next((DateTime.Parse(ymdb) - DateTime.Parse(ymds)).Days + 1)).ToString("yyyy-MM-dd");
//生成開始時間加上一定間隔秒數的隨機時間
string hms = DateTime.Parse(hmss).AddSeconds(new Random().Next(seconds)).ToString("HH:mm:ss");
//返回隨機時間
return Convert.ToDateTime(ymd + " " + hms).ToString("yyyy-MM-dd HH:mm:ss");
}
無需參數的隨機時間生成方法
private static string RandomTime()
{
//默認設置起始日期
string ymds = "2015-09-21";
//默認設置結束日期
string ymdb = DateTime.Today.ToString("yyyy-MM-dd");//當前時間
//默認設置開始時間
string hmss = "08:00:00";
//默認設置間隔秒數
int seconds = 12 * 60 * 60;
//生成起始日期和結束日期之間的隨機日期
string ymd = DateTime.Parse(ymds).AddDays(new Random().Next((DateTime.Parse(ymdb) - DateTime.Parse(ymds)).Days + 1)).ToString("yyyy-MM-dd");
//生成開始時間加上一定間隔秒數的隨機時間
string hms = DateTime.Parse(hmss).AddSeconds(new Random().Next(seconds)).ToString("HH:mm:ss");
//返回隨機時間
return Convert.ToDateTime(ymd + " " + hms).ToString("yyyy-MM-dd HH:mm:ss");
}
測試結果顯示為:
23
RT產生的區間隨機時間:2015-09-23 09:31:14
Random產生的區間隨機時間:2015-09-27 09:31:14
24
RT產生的區間隨機時間:2015-09-23 18:25:53
Random產生的區間隨機時間:2015-10-28 16:28:05
...
兩個調用方法的原理其實是一樣的,根據需要來調用不同的方法。
RT方法調用更具靈活性,根據傳入參數來生成一定區間的隨機時間。
RandomTime方法比較固定,省去了傳入參數的麻煩,如若修改比較麻煩。
注意事項
不管是什麼程序,都要反思詳細測試才可上線使用。