我想用今天、明天和后天的祈祷时间填充一个列表框。XML 有日期和月份的值,而不是年份。除非明天或后天是在下一年,否则查询没有问题。然后列表首先显示 01.01 的值,然后是 02.01 和最后一个 31.12。
问题:1)如何对其进行排序,以便根据日期升序排序。2)如何修复“日期”,使其值显示为星期一 01.01.2012 而不是“01.01.2012 12:00AM” 2)如何将 01.01 和 02.01 显示为 2013 年而不是 2012 年,因为年份会发生变化。
这在我的列表框中显示如下:
01.01.2012 12:00AM
Fajr 07:00
Soloppgang 09:19
etc..
02.01.2012 12:00AM
Fajr 07:00
Soloppgang 09:19
etc..
31.12.2012 12:00AM
Fajr 07:00
Soloppgang 09:19
etc...
我想要的结果是全年实现,而不是在 nextDay 或thirdDay 是在下一年。
我的 XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WIMPrayerTable>
<Prayertime
Day ="1"
Month="1"
Fajr="07:00"
Soloppgang="09:19"
Zohr="12:26"
Asr="13:36"
Maghrib="15:26"
/>
<Prayertime
Day ="2"
Month="1"
Fajr="07:00"
Soloppgang="09:19"
Zohr="12:25"
Asr="13:33"
Maghrib="15:23"
Isha="17:39"
/>
//一年中剩下的时间介于两者之间。我没有在这里展示
我的课:
public class Bonn3
{
public string Fajr { get; set; }
public string Soloppgang { get; set; }
public string Zohr { get; set; }
public string Asr { get; set; }
public string Maghrib { get; set; }
public string Isha { get; set; }
public string Jumma { get; set; }
public DateTime Date { get; set; }
}
我的查询:
DateTime myDay = DateTime.Now;
DateTime NextDay = myDay.AddDays(1);
DateTime thirdDay = myDay.AddDays(2);
var filteredData = from c in loadedCustomData.Descendants("Bønnetid")
where c.Attribute("Dag").Value == myDay.Day.ToString() && c.Attribute("Måned").Value == myDay.Month.ToString()
|| c.Attribute("Dag").Value == NextDay.Day.ToString() && c.Attribute("Måned").Value == NextDay.Month.ToString()
|| c.Attribute("Dag").Value == thirdDay.Day.ToString() && c.Attribute("Måned").Value == thirdDay.Month.ToString()
select new Bonn3()
{
Date = new DateTime(myDay.Year,int.Parse(c.Attribute("Måned").Value),int.Parse(c.Attribute("Dag").Value)),
Fajr = c.Attribute("Fajr").Value,
Soloppgang = c.Attribute("Soloppgang").Value,
Zohr = c.Attribute("Zohr").Value,
Asr = c.Attribute("Asr").Value,
Maghrib = c.Attribute("Maghrib").Value,
Isha = c.Attribute("Isha").Value,
};
listBox1.ItemsSource = filteredData;