Я работаю над проектом (простой телефонной книгой) для личного использования. Я показываю свои контакты в списке, а контакты хранятся в XML-файле. Он содержит данные о контактах, такие как имя, город, адрес, день рождения и т. Д. В принципе, я хотел бы получать уведомление, когда он является днем рождения контакта с помощью значка уведомления (воздушного шара).C# - Уведомление о деньгах
Например:
<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>
<People>
В этом случае значок уведомляет должен появиться, когда это день рождения Джона. Я полностью застрял здесь, так как я понятия не имею, как это сделать. Теоретически, он должен искать дни рождения в файле XML, а затем сравнивать его с текущей датой. Если это совпадение, появится значок уведомления. Проблема в том, что я не знаю, чтобы сделать это сам.
Это часть моего частного void Main_Load (отправитель объекта, EventArgs e), где я загружаю контакты в список. Я думал, что могу использовать p.Birthday как-то, но единственное, что приходит мне в голову, это то, что (p.Birthday == DateTime.Now), но это, безусловно, не правильный способ делать что-то.
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);
}
Любые идеи?
Если у вас нет кода, вы должны опубликовать свой хотя бы процесс/идеи. В stackoverflow у вас будет гораздо больше шансов получить ответ, когда вы поймете понимание проблемы. Подобный вопрос, требующий полного решения, часто считается слишком широким для ответа. – ChrisK
OMG, разве я уже опубликовал то, что я придумал ?! «Теоретически, он должен искать дни рождения в XML-файле, а затем сравнивать его с текущей датой. Если это совпадение, появится значок уведомления. Проблема в том, что я не знаю, чтобы сделать это сам». И это «где мои знания прекращаются. Если бы у меня уже был четкий план, как это сделать, я бы, конечно, вас не беспокоил. Единственная часть, которую я не могу сделать сам, это проверить, соответствует ли сегодняшняя дата чьему-либо дню рождения в моем XML-файле, остальное - «кусок пирога». –
Вы знаете, как читать XML-файл? В каком формате День рождения? И что ты пробовал? – Harrison