Stvar je sledeća: imam listview ispunjen kontaktima koji se čuvaju u XML file-u. XML izgleda ovako:
Code (xml):
<People>
<Person>
<Name>John</Name>
<Hometown>Washington</Hometown>
<Address>231 Main Street</Address>
<Birthday>130299511993682082</Birthday>
<Phone>555-555-555</Phone>
<Email>[email protected]</Email>
<AdditionalInfo>Skype: john.123</AdditionalInfo>
</Person>
<Person>
<Name>123</Name>
<Hometown>
</Hometown>
<Address>
</Address>
<Birthday>130299621669230698</Birthday>
<Phone>
</Phone>
<Email>
</Email>
<AdditionalInfo>
</AdditionalInfo>
</Person>
</People>
<People>
<Person>
<Name>John</Name>
<Hometown>Washington</Hometown>
<Address>231 Main Street</Address>
<Birthday>130299511993682082</Birthday>
<Phone>555-555-555</Phone>
<Email>[email protected]</Email>
<AdditionalInfo>Skype: john.123</AdditionalInfo>
</Person>
<Person>
<Name>123</Name>
<Hometown>
</Hometown>
<Address>
</Address>
<Birthday>130299621669230698</Birthday>
<Phone>
</Phone>
<Email>
</Email>
<AdditionalInfo>
</AdditionalInfo>
</Person>
</People>
U suštini, pokušavam da napravim da mi iskoči notify icon (balloon) svaki put kada je nekom od kontakata rođendan. Međutim, imam problem jer ne znam kako da pravilno uporedim rođendan sa današnjim datumom. Pre svega, to sam planirao da stavim u on load, dakle kad se program startuje - da li je to ok? Nešto sam tražio po Google i pokušavao i evo dokle sam stigao, dakle ovo je deo gde se kontakti učitavaju u listview:
Code (csharp):
string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string phonebook_path = path + "\\Phonebook\\Contacts.xml";
if (!File.Exists(phonebook_path))
{
XmlTextWriter xW = new XmlTextWriter(phonebook_path, Encoding.UTF8);
xW.WriteStartElement("People");
xW.WriteEndElement();
xW.Close();
}
XmlDocument xDoc = new XmlDocument();
xDoc.Load(phonebook_path);
foreach (XmlNode xNode in xDoc.SelectNodes("People/Person"))
{
Person p = new Person();
p.Name = xNode.SelectSingleNode("Name").InnerText;
p.Hometown = xNode.SelectSingleNode("Hometown").InnerText;
p.Address = xNode.SelectSingleNode("Address").InnerText;
p.Birthday = DateTime.FromFileTime(Convert.ToInt64(xNode.SelectSingleNode("Birthday").InnerText));
p.Phone = xNode.SelectSingleNode("Phone").InnerText;
p.Email = xNode.SelectSingleNode("Email").InnerText;
p.AdditionalInfo = xNode.SelectSingleNode("AdditionalInfo").InnerText;
people.Add(p);
listView1.Items.Add(p.Name);
UserCount();
}
string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string phonebook_path = path + "\\Phonebook\\Contacts.xml";
if (!File.Exists(phonebook_path))
{
XmlTextWriter xW = new XmlTextWriter(phonebook_path, Encoding.UTF8);
xW.WriteStartElement("People");
xW.WriteEndElement();
xW.Close();
}
XmlDocument xDoc = new XmlDocument();
xDoc.Load(phonebook_path);
foreach (XmlNode xNode in xDoc.SelectNodes("People/Person"))
{
Person p = new Person();
p.Name = xNode.SelectSingleNode("Name").InnerText;
p.Hometown = xNode.SelectSingleNode("Hometown").InnerText;
p.Address = xNode.SelectSingleNode("Address").InnerText;
p.Birthday = DateTime.FromFileTime(Convert.ToInt64(xNode.SelectSingleNode("Birthday").InnerText));
p.Phone = xNode.SelectSingleNode("Phone").InnerText;
p.Email = xNode.SelectSingleNode("Email").InnerText;
p.AdditionalInfo = xNode.SelectSingleNode("AdditionalInfo").InnerText;
people.Add(p);
listView1.Items.Add(p.Name);
UserCount();
}
pa sam ispod toga, odnosno kad se kontakti učitaju, hteo da dodam nešto ovako:
Code (csharp):
foreach (XmlNode xNode in xDoc.SelectNodes("People/Person"))
{
Person p = new Person();
p.Birthday = DateTime.FromFileTime(Convert.ToInt64(xNode.SelectSingleNode("Birthday").InnerText));
DateTime today = DateTime.Today;
int result = DateTime.Compare(today, p.Birthday);
if (result == 0)
{
MessageBox.Show("OK");
}
}
{
Person p = new Person();
p.Birthday = DateTime.FromFileTime(Convert.ToInt64(xNode.SelectSingleNode("Birthday").InnerText));
DateTime today = DateTime.Today;
int result = DateTime.Compare(today, p.Birthday);
if (result == 0)
{
MessageBox.Show("OK");
}
}
Dakle, hteo sam da svaki rođendan u XML-u uporedi sa današnjim datumom i da ako je rezultat isti, iskoči notify (za sad samo MessageBox.Show("OK") pa ću videti dalje. Nije mi jasno kako da ih uporedim, ako mi je dateTimePicker CustomFormat i to MMMM, dd. (yyy)
Any ideas?