Я создал, еще один, для этой цели:
function dateDiff(date) {
date = date.split('-');
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var day = today.getDate();
var yy = parseInt(date[0]);
var mm = parseInt(date[1]);
var dd = parseInt(date[2]);
var years, months, days;
// months
months = month - mm;
if (day < dd) {
months = months - 1;
}
// years
years = year - yy;
if (month * 100 + day < mm * 100 + dd) {
years = years - 1;
months = months + 12;
}
// days
days = Math.floor((today.getTime() - (new Date(yy + years, mm + months - 1, dd)).getTime()) / (24 * 60 * 60 * 1000));
//
return {years: years, months: months, days: days};
}
Не требует сторонних библиотек. Принимает один аргумент - дату в формате YYYY-MM-DD.
https://gist.github.com/lemmon/d27c2d4a783b1cf72d1d1cc243458d56
Обновление: я нашел стороннюю библиотеку COM названной Освобождение Outlook , который хорошо работает для меня в данный момент. При использовании его через COM Interop в.NET не забывайте выпускать каждый COM-объект после того, как Вы сделаны с ним, иначе Ваши сбои приложения случайным образом.
Если Вы открываете.MESSAGE файл в текстовом редакторе, я полагаю, что Вы найдете, что информация, которая Вы после, хранится как простой текст в файле. (Это находится на всех сообщениях, которые я проверил, по крайней мере)
, было бы довольно легко написать некоторый код для парсинга поиска файла начала строк "От": или "К": и т.д. и затем извлекая информацию Вам нужно.
, Если Вам нужно тело электронной почты также, которая может быть немного более сложной.
Microsoft зарегистрировала это: .MESSAGE Спецификация
Формата файлаЭто - документ "Структурированного хранилища". Я успешно использовал код Andrew Peace для чтения их в прошлом даже под.NET (использующий C++ / CLI) - это чисто и довольно легко понять. В основном необходимо выяснить, в каких записях Вы нуждаетесь, и запрос для тех - это становится немного волосатым, так как различные версии Outlook и различные типы сообщений приведут к различным записям...
В CodeProject есть код для чтения файлов .msg без COM. См. здесь .
Вот пример кода VBA с использованием Outlook Redemption, который нашел Хусейнт.
Public Sub ProcessMail()
Dim Sess As RDOSession
Dim myMsg As RDOMail
Dim myString As String
Set Sess = CreateObject("Redemption.RDOSession")
Set myMsg = Sess.GetMessageFromMsgFile("C:\TestHarness\kmail.msg")
myString = myMsg.Body
myMsg.Body = Replace(myString, "8750", "XXXX")
myMsg.Save
End Sub