显示操纵时间而非实际时间

时间:2015-12-22 03:01:20

标签: c# time

我想显示时钟时间与实际时间不同。

时序图就像这样

| 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

所以这就是时钟的样子......当时间是实际时间我想要显示操纵时间。制作我得到的表的数组/列表/字典,并显示操作时间。这将是最后一个选择。

我想找到任何可以轻松完成此任务的逻辑/循环。是否有任何人看到任何可以在循环中实现的模式。

时序中可能存在一点点变化,但图表/图表看起来应该是这样的。

Chart of the Timings

1 个答案:

答案 0 :(得分:1)

这真是一项艰巨的任务,男人..它涉及多个参数来找到它的模式。

我能做的最好的事情就是至少按照这样的步骤制定(函数中的输入是ibreakerdivisor和{{ 1}},输出为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);