2015-12-22 82 views
0

我想顯示與實際時間不同的時鐘時間。顯示操作時間而不是實際時間

的時序圖是這樣的

| Actual Time | Manipulated Time | 
------------------------------------- 
8:54   |   8:54 
8:55   |   8:55 
8:56   |   8:55 
8:57   |   8:55 
8:58   |   8:56 
8:59   |   8:56 
9:00   |   8:56 
9:01   |   8:57 
9:02   |   8:57 
9:03   |   8:57 
9:04   |   8:58 
9:05   |   8:58 
9:06   |   8:58 
9:07   |   8:59 
9:08   |   8:59 
9:09   |   8:59 
9:10   |   9:00 
9:11   |   9:00 
9:12   |   9:01 
9:13   |   9:01 
9:14   |   9:02 
9:15   |   9:02 
9:16   |   9:03 
9:17   |   9:03 
9:18   |   9:04 
9:19   |   9:04 
9:20   |   9:05 
9:21   |   9:06 
9:22   |   9:07 
9:23   |   9:08 
9:24   |   9:09 
9:25   |   9:10 
9:26   |   9:11 
9:27   |   9:12 
9:28   |   9:13 
9:29   |   9:14 
9:30   |   9:15 
9:31   |   9:17 
9:32   |   9:19 
9:33   |   9:21 
9:34   |   9:23 
9:35   |   9:25 
9:36   |   9:27 
9:37   |   9:29 
9:38   |   9:31 
9:39   |   9:33 
9:40   |   9:35 
9:41   |   9:37 
9:42   |   9:39 
9:43   |   9:41 
9:44   |   9:43 
9:45   |   9:45 
9:46   |   9:46 
9:47   |   9:47 
9:48   |   9:48 
9:49   |   9:49 

所以這是時鐘的外觀......到時候我想表明操縱時間的實際時間。製作我得到的表格的數組/列表/字典並顯示操縱的時間。這將是最後的選擇。

我想找到任何可以輕鬆完成此任務的邏輯/循環。有沒有人看到任何可以在循環中實現的模式。

A 變化的一點點是可能的,但圖表/圖表應該看起來像這樣。

Chart of the Timings

+0

我會用事實操縱時間的形狀像拋物線或指數的一部分。 – jsanalytics

回答

1

這的確是一項艱鉅的任務,人..它涉及多個參數找到它的模式。

我可以想出最好是使至少一步一步製劑像這樣(在該函數的輸入是ibreakerdivisor,和interval,輸出爲j):

int i_copy = i, acc_val = 0, leap = divisor * interval; 
while (i_copy > leap && divisor > 1) { 
    i_copy -= leap; 
    acc_val += interval; 
    divisor--; 
    leap = divisor * interval;    
} 
int j = i_copy/divisor + acc_val + Math.Max(i - breaker, 0); 

這是用於我的測試較完整的代碼:

void formula(int i, int breaker = 35, int divisor = 3, int interval = 5) { 
    DateTime original = new DateTime(2015, 12, 22, 5, 8, 55); 
    DateTime convert = new DateTime(2015, 12, 22, 5, 8, 55); 

    int i_copy = i, acc_val = 0, leap = divisor * interval; 
    while (i_copy > leap && divisor > 1) { 
     i_copy -= leap; 
     acc_val += interval; 
     divisor--; 
     leap = divisor * interval;    
    } 
    int j = i_copy/divisor + acc_val + Math.Max(i - breaker, 0);   

    original = original.AddSeconds(i); 
    convert = convert.AddSeconds(j); 

    //Do the printing here... 
} 

我這樣稱呼它,

for (int i = 0; i <= 50; ++i) 
    formula(i); 

這是使用代碼的結果:

[2015-12-22 07:58:43.324 UTC] 8:55 8:55 i: 0 divisor: 3 acc_val: 0 j: 0 
[2015-12-22 07:58:43.326 UTC] 8:56 8:55 i: 1 divisor: 3 acc_val: 0 j: 0 
[2015-12-22 07:58:43.326 UTC] 8:57 8:55 i: 2 divisor: 3 acc_val: 0 j: 0 
[2015-12-22 07:58:43.327 UTC] 8:58 8:56 i: 3 divisor: 3 acc_val: 0 j: 1 
[2015-12-22 07:58:43.327 UTC] 8:59 8:56 i: 4 divisor: 3 acc_val: 0 j: 1 
[2015-12-22 07:58:43.327 UTC] 9:00 8:56 i: 5 divisor: 3 acc_val: 0 j: 1 
[2015-12-22 07:58:43.327 UTC] 9:01 8:57 i: 6 divisor: 3 acc_val: 0 j: 2 
[2015-12-22 07:58:43.328 UTC] 9:02 8:57 i: 7 divisor: 3 acc_val: 0 j: 2 
[2015-12-22 07:58:43.328 UTC] 9:03 8:57 i: 8 divisor: 3 acc_val: 0 j: 2 
[2015-12-22 07:58:43.328 UTC] 9:04 8:58 i: 9 divisor: 3 acc_val: 0 j: 3 
[2015-12-22 07:58:43.328 UTC] 9:05 8:58 i: 10 divisor: 3 acc_val: 0 j: 3 
[2015-12-22 07:58:43.328 UTC] 9:06 8:58 i: 11 divisor: 3 acc_val: 0 j: 3 
[2015-12-22 07:58:43.329 UTC] 9:07 8:59 i: 12 divisor: 3 acc_val: 0 j: 4 
[2015-12-22 07:58:43.329 UTC] 9:08 8:59 i: 13 divisor: 3 acc_val: 0 j: 4 
[2015-12-22 07:58:43.330 UTC] 9:09 8:59 i: 14 divisor: 3 acc_val: 0 j: 4 
[2015-12-22 07:58:43.330 UTC] 9:10 9:00 i: 15 divisor: 3 acc_val: 0 j: 5 
[2015-12-22 07:58:43.330 UTC] 9:11 9:00 i: 16 divisor: 2 acc_val: 5 j: 5 
[2015-12-22 07:58:43.330 UTC] 9:12 9:01 i: 17 divisor: 2 acc_val: 5 j: 6 
[2015-12-22 07:58:43.330 UTC] 9:13 9:01 i: 18 divisor: 2 acc_val: 5 j: 6 
[2015-12-22 07:58:43.331 UTC] 9:14 9:02 i: 19 divisor: 2 acc_val: 5 j: 7 
[2015-12-22 07:58:43.331 UTC] 9:15 9:02 i: 20 divisor: 2 acc_val: 5 j: 7 
[2015-12-22 07:58:43.331 UTC] 9:16 9:03 i: 21 divisor: 2 acc_val: 5 j: 8 
[2015-12-22 07:58:43.331 UTC] 9:17 9:03 i: 22 divisor: 2 acc_val: 5 j: 8 
[2015-12-22 07:58:43.331 UTC] 9:18 9:04 i: 23 divisor: 2 acc_val: 5 j: 9 
[2015-12-22 07:58:43.332 UTC] 9:19 9:04 i: 24 divisor: 2 acc_val: 5 j: 9 
[2015-12-22 07:58:43.332 UTC] 9:20 9:05 i: 25 divisor: 2 acc_val: 5 j: 10 
[2015-12-22 07:58:43.332 UTC] 9:21 9:06 i: 26 divisor: 1 acc_val: 10 j: 11 
[2015-12-22 07:58:43.332 UTC] 9:22 9:07 i: 27 divisor: 1 acc_val: 10 j: 12 
[2015-12-22 07:58:43.333 UTC] 9:23 9:08 i: 28 divisor: 1 acc_val: 10 j: 13 
[2015-12-22 07:58:43.333 UTC] 9:24 9:09 i: 29 divisor: 1 acc_val: 10 j: 14 
[2015-12-22 07:58:43.333 UTC] 9:25 9:10 i: 30 divisor: 1 acc_val: 10 j: 15 
[2015-12-22 07:58:43.333 UTC] 9:26 9:11 i: 31 divisor: 1 acc_val: 10 j: 16 
[2015-12-22 07:58:43.334 UTC] 9:27 9:12 i: 32 divisor: 1 acc_val: 10 j: 17 
[2015-12-22 07:58:43.334 UTC] 9:28 9:13 i: 33 divisor: 1 acc_val: 10 j: 18 
[2015-12-22 07:58:43.334 UTC] 9:29 9:14 i: 34 divisor: 1 acc_val: 10 j: 19 
[2015-12-22 07:58:43.334 UTC] 9:30 9:15 i: 35 divisor: 1 acc_val: 10 j: 20 
[2015-12-22 07:58:43.334 UTC] 9:31 9:17 i: 36 divisor: 1 acc_val: 10 j: 22 
[2015-12-22 07:58:43.340 UTC] 9:32 9:19 i: 37 divisor: 1 acc_val: 10 j: 24 
[2015-12-22 07:58:43.342 UTC] 9:33 9:21 i: 38 divisor: 1 acc_val: 10 j: 26 
[2015-12-22 07:58:43.343 UTC] 9:34 9:23 i: 39 divisor: 1 acc_val: 10 j: 28 
[2015-12-22 07:58:43.344 UTC] 9:35 9:25 i: 40 divisor: 1 acc_val: 10 j: 30 
[2015-12-22 07:58:43.344 UTC] 9:36 9:27 i: 41 divisor: 1 acc_val: 10 j: 32 
[2015-12-22 07:58:43.345 UTC] 9:37 9:29 i: 42 divisor: 1 acc_val: 10 j: 34 
[2015-12-22 07:58:43.345 UTC] 9:38 9:31 i: 43 divisor: 1 acc_val: 10 j: 36 
[2015-12-22 07:58:43.346 UTC] 9:39 9:33 i: 44 divisor: 1 acc_val: 10 j: 38 
[2015-12-22 07:58:43.346 UTC] 9:40 9:35 i: 45 divisor: 1 acc_val: 10 j: 40 
[2015-12-22 07:58:43.347 UTC] 9:41 9:37 i: 46 divisor: 1 acc_val: 10 j: 42 
[2015-12-22 07:58:43.348 UTC] 9:42 9:39 i: 47 divisor: 1 acc_val: 10 j: 44 
[2015-12-22 07:58:43.351 UTC] 9:43 9:41 i: 48 divisor: 1 acc_val: 10 j: 46 
[2015-12-22 07:58:43.351 UTC] 9:44 9:43 i: 49 divisor: 1 acc_val: 10 j: 48 
[2015-12-22 07:58:43.352 UTC] 9:45 9:45 i: 50 divisor: 1 acc_val: 10 j: 50 
+0

心靈吹@ian :)即將實現並標記爲答案,如果它的工作 –

+0

是的,請參閱...有些參數如divisor,間隔等必須根據您的需要調整。我放在那裏只是你的例子(除數= 3,區間= 5) – Ian

+0

代碼簡化。我只是意識到有些東西可以被刪除。 – Ian

相關問題