0

Possible Duplicate:
Based on date, get todays and the next two days values from XML?

I have asked some questions earlier, and thanks to excellent help from stackoverflow, i have solved a lot of the main issues. Thank you all! I am extremely sorry if my questions are stupid, but i have tried to google as much as i can before asking here at stackoverflow.

I also have a working page where i can get specific prayer times and populate textblocks. See this link and my marked question with the solution. There i use public timespan in the class and the var query:

How to make an if statement to show xml attribute based on current time

I am still working on the muslim PrayerTime app, and want to populate a listBox with todays+the next 3 days prayer times.

    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;

my Class is:

public class Prayertime
{

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

}

my local XML file (always included in the app it self)

<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"
/>

First of all, how to change this code to show me a list of today plus the next three days?

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

Or should i make one query for each day, DateTime NextDay = DateTime.Now.AddDays(1) and so on? How to i populate the same listBox with three or four different querys like this? Can i just repeat this:

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

Also, what to do when the month changes? For example, if the date is 30 and month is 4 next day will be value 1 and month should then show 5?

Last but not least.. when showing the information i want the listBox to show it like:

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

where i have a fixed spacing between the Attribute name and value, and the date/day above.

Thank you very much to everyone who takes the time to read, and huge thanks to everyone who answers:)

Community
  • 1
  • 1
Megaoctane
  • 919
  • 3
  • 9
  • 10

1 Answers1

0

Try this:

where int.Parse(c.Attribute("Day").Value) >= myDay.Day && int.Parse(c.Attribute("Day").Value) < (myDay.Day + 3)
laszlokiss88
  • 4,001
  • 3
  • 20
  • 26