我想为今天,明天和之后的一天填写一个列表框,以及祈祷节目。 XML具有日期和月份的值,而不是年份。 除非明天或明天是在明年,否则查询的工作没有问题。 然后,列表显示01.01的第一个值,然后是02.01和最后的31.12的值。按日期排序listBox,并显示日期为“dddd”后跟日期?
问题: 1)如何对它进行排序,使其按照日期排序。 2)如何解决“日期”,这样的价值显示为星期一01.01.2012而不是“01.01.2012 12:00 AM” 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;
谢谢。如何将Date = new DateTime显示为shortDatestring?现在它显示“05/13/2012 12:00:00 AM” – Megaoctane
你几乎自己给出了答案:http://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring.aspx –
我试过这但它不起作用。我得到日期的代码是:Date = new DateTime(myDay.Year,int.Parse(c.Attribute(“Month”)。Value),int.Parse(c.Attribute(“Day”)。Value)) '我应该在哪里放置.ToShortDateString()。它只是标记一切红色,如果我把它放在末尾 – Megaoctane