0

重複の可能性:
日付に基づいて、XML から今日と次の 2 日間の値を取得しますか?

以前にいくつか質問をしましたが、stackoverflow の優れたサポートのおかげで、多くの主要な問題を解決できました。皆さん、ありがとうございました!私の質問がばかげている場合は非常に申し訳ありませんが、スタックオーバーフローで質問する前に、できる限りグーグルで検索しようとしました.

特定の祈りの時間を取得してテキストブロックを入力できる作業ページもあります。このリンクと解決策に関する私のマークされた質問を参照してください。そこで、クラスと var クエリで public timespan を使用します。

現在の時刻に基づいて xml 属性を表示する if ステートメントを作成する方法

私はまだイスラム教徒の PrayerTime アプリに取り組んでおり、listBox に今日と次の 3 日間の祈りの時間を入力したいと考えています。

    DateTime myDay = DateTime.Now;
    XDocument loadedCustomData = XDocument.Load("WimPrayerTime.xml");
    var filteredData = from c in loadedCustomData.Descendants("PrayerTime")
                       where c.Attribute("Day").Value == myDay.Day.ToString()
                       && c.Attribute("Month").Value == myDay.Month.ToString()

                       select new PrayerTime()
                       {
                           Fajr = c.Attribute("Fajr").Value,
                           Soloppgang = c.Attribute("Soloppgang").Value,
                           Zohr = c.Attribute("Zohr").Value,
                       };

    listBox1.ItemsSource = filteredData;

私のクラスは:

public class Prayertime
{

   public string Fajr { get; set; }
   public string Sunrise { get; set; }
   public string Zohr { get; set; }

}

私のローカル XML ファイル (常にアプリ自体に含まれています)

<PrayerTime
    Day ="30" 
    Month="4" 
    Fajr="07:00" 
    Sunrise="09:00"
    Zuhr="14:00"
/>
<PrayerTime
    Day ="1" 
    Month="5" 
    Fajr="07:05" 
    Sunrise="09:05"
    Zuhr="14:05"
/>
<PrayerTime
    Day ="2" 
    Month="5" 
    Fajr="07:10" 
    Sunrise="09:10"
    Zuhr="14:10"
/>

まず、このコードを変更して、今日と次の 3 日間のリストを表示する方法を教えてください。

where c.Attribute("Day").Value == myDay.Day.ToString()

または、毎日 1 つのクエリを作成する必要があります DateTime NextDay = DateTime.Now.AddDays(1)か? このような 3 つまたは 4 つの異なるクエリを同じ listBox に入力するにはどうすればよいですか? これを繰り返すことはできますか:

listBox1.ItemsSource = filteredData1;
listBox1.ItemsSource = filteredData2;
listBox1.ItemsSource = filteredData3;

また、月が変わるときはどうすればいいですか?たとえば、日付が 30 で月が 4 の場合、翌日は値 1 になり、月は 5 と表示されますか?

最後になりましたが..情報を表示するとき、listBoxに次のように表示させたい:

Monday 30.04.2012
Fajr        07:00
Sunrise     09:00
Zuhr        14:00

Tuesday 01.05.2012
Fajr        07:05
Sunrise     09:10
Zuhr        14:10

ここで、属性の名前と値、および上記の日付/日の間に固定の間隔があります。

時間を割いて読んでくださった皆様、そして回答してくださった皆様、本当にありがとうございました:)

4

1 に答える 1

0

これを試して:

where int.Parse(c.Attribute("Day").Value) >= myDay.Day && int.Parse(c.Attribute("Day").Value) < (myDay.Day + 3)
于 2012-05-08T11:56:58.520 に答える