目標: 今日の日付と月に基づいて、XML から実際の値と次の 2 日間の値を取得します。
問題: c.Attribute("Day").Value は変更されますが、c.Attribute("Month").Value は変わりません。したがって、実際の日が 2012 年 4 月 30 日である場合、2012 年 4 月 30 日の祈りの時間は表示されますが、2012 年 5 月 1 日と 2012 年 5 月 2 日は表示されません。これを解決する方法は?
また、これDato = c.Attribute("Day").Value + "." + c.Attribute("Month").Value + "." + myDay.Year.ToString(),
が良いかどうかはわかりませんか?取得しているxmlの日付をリストボックスに表示したい。
助けてください。以下の私のコード、XML、およびクラス。
var filteredData3 = from c in loadedCustomData.Descendants("PrayerTime")
where int.Parse(c.Attribute("Day").Value) >= myDay.Day && int.Parse(c.Attribute("Day").Value) < (myDay.Day + 3)
&& c.Attribute("Month").Value == myDay.Month.ToString()
select new Bønn()
{
Dato = c.Attribute("Day").Value + "." + c.Attribute("Month").Value + "." + myDay.Year.ToString(),
Fajr = TimeSpan.Parse(c.Attribute("Fajr").Value),
Sunrise = TimeSpan.Parse(c.Attribute("Sunrise").Value),
Zohr = TimeSpan.Parse(c.Attribute("Zohr").Value),
Asr = TimeSpan.Parse(c.Attribute("Asr").Value),
Maghrib = TimeSpan.Parse(c.Attribute("Maghrib").Value),
Isha = TimeSpan.Parse(c.Attribute("Isha").Value),
Jumma = TimeSpan.Parse(c.Attribute("Jumma").Value),
};
listBox1.ItemsSource = filteredData3;
これが私のクラスです:
public class Bønn
{
public TimeSpan Fajr { get; set; }
public TimeSpan Sunrise { get; set; }
public TimeSpan Zohr { get; set; }
public TimeSpan Asr { get; set; }
public TimeSpan Maghrib { get; set; }
public TimeSpan Isha { get; set; }
public TimeSpan Jumma { get; set; }
public string Dato { get; set; }
}
ここに私のXMLがあります:
<PrayerTime
Dag ="30"
Måned="4"
Fajr="04:09"
Sunrise="05:19"
Zohr="13:19"
Asr="18:30"
Maghrib="21:14"
Isha="22:24"
/>
<PrayerTime
Dag ="1"
Måned="5"
Fajr="04:08"
Sunrise="05:16"
Zohr="13:19"
Asr="18:31"
Maghrib="21:17"
Isha="22:25"
/>
<PrayerTime
Dag ="2"
Måned="5"
Fajr="04:06"
Sunrise="05:13"
Zohr="13:19"
Asr="18:33"
Maghrib="21:19"
Isha="22:27"
/>