C#datetime数组

C#datetime数组,第1张

概述我有两个数组,array1具有从上午8点到下午2点的分钟的日期时间数据,而array2具有从同一天的早上8点到下午1点的日期时间数据. 我想输出具有相同datetime.hour的两个数组的索引号.并且它应该匹配array1中比array2晚的所有日期时间数据的最后一个可用索引号array2. 例如,如果我有两个这样的日期时间数组: DateTime[] dateTimes1 = new Date 我有两个数组,array1具有从上午8点到下午2点的分钟的日期时间数据,而array2具有从同一天的早上8点到下午1点的日期时间数据.

我想输出具有相同datetime.hour的两个数组的索引号.并且它应该匹配array1中比array2晚的所有日期时间数据的最后一个可用索引号array2.

例如,如果我有两个这样的日期时间数组:

DateTime[] dateTimes1 = new DateTime[]        {            new DateTime(2010,10,1,8,15,0),new DateTime(2010,30,1),45,2),9,3),4),5),6),7),8),11,9),10),11),12,12),13),14),13,15),16),17),14,18),19),20),};        DateTime[] dateTimes2 = new DateTime[]        {            new DateTime(2010,};

它应该给我输出:

0,0
1,0
2,0
3,1
4,1
5,1
6,2
7,2
8,2
9,3
10,3
11,3
12,4
13,4
14,4
15,5
16,5
17,5
18,5
19,5
20,5

这是我尝试过的:

int i = 0;            int j = 0;            while (i < dateTimes1.Length && j < dateTimes2.Length)            {                     if (dateTimes1[i].Date == dateTimes2[j].Date && dateTimes1[i].Hour == dateTimes2[j].Hour)                {                    List.Add(i);                    List2.Add(j);                    i++;                }                else if (dateTimes1[i] < dateTimes2[j])                {                    i++;                }                else if (dateTimes1[i] > dateTimes2[j])                {                    j++;                }            }            for (int k = 0; k < List.Count; k++)            {                Console.Writeline(List[k] + "," + List2[k];            }

但它不会在下午1点后输出索引号.

解决方法 你的两个名单的长度不一样.在while语句中,您尝试同时迭代两个不同长度的列表.

如果我理解你的要求你应该通过使用内循环来做这样的事情:

DateTime[] dateTimes1 = new DateTime[]    {        new DateTime(2010,};    DateTime[] dateTimes2 = new DateTime[]    {        new DateTime(2010,};    int i = 0;    while (i < dateTimes1.Length)    {        int j = 0;        while (j < dateTimes2.Length))        {            if (dateTimes1[i].Date == dateTimes2[j].Date && dateTimes1[i].Hour == dateTimes2[j].Hour)            {                List.Add(i);                List2.Add(j);                i++;            }            else if (dateTimes1[i] < dateTimes2[j])            {                i++;            }            else if (dateTimes1[i] > dateTimes2[j])            {                j++;            }        }    }    for (int k = 0; k < List.Count; k++)    {        Console.Writeline(List[k] + "," + List2[k];    }
总结

以上是内存溢出为你收集整理的C#datetime数组全部内容,希望文章能够帮你解决C#datetime数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1231991.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存