2012-03-16 2 views
0

Java 코드를 통해 Outlook에서 약속을 만듭니다. 여기 약속에있는 필드에 새로운 값을 설정할 수 있습니다. 그 코드는Java 코드의 Outlook 약속에 시작 날짜와 종료 날짜를 설정하는 날짜 형식

OleAutomation appointment = invoke(outlook, "CreateItem", 1).getAutomation(); 
appointment.setProperty(property(appointment, "Subject"), new Variant("Test")); 

이 코드는 값 "Test"로 제목 필드를 설정합니다.

여기 공용 인터페이스를 통해 다른 유형의 데이터를 전달하기 위해 "변형"일반 OLE 메커니즘을 사용합니다. 이제 약속 날짜를 설정하는 방법을 알고 싶습니다. 제발 도와주세요 .. 사전 : 내 댓글에 명시된 바와 같이

+0

이 정보는 도움이 될 수 있습니다. http://stackoverflow.com/questions/2599102/oledate-java-implementation. 날짜는 1899 년 12 월 30 일 이후 일수를 나타내는 float 형식으로 저장됩니다. – Alex

+0

자바에서 OLE 자동화 날짜를 얻는 방법은 무엇입니까? – Anu

답변

0

에서

감사합니다, OLE의 날짜는 1899-12-30 이후 날짜 수로 저장됩니다. 그 번호를 쉽게 계산할 수 있습니다. 당신이 그것을 가지고, 내가 생각하는 표준 변종을 사용하여 오른쪽 OLE 속성에 패스 - 그것.

불행하게도 나는 SWT 여기를 설치하지 않은 및 코드를 테스트 할 수 있지만, 그것은 완전한 예에 대한 found here을 할 수있는 Outlook의 자동화에 그

public class Test { 
    static Calendar OLE_BASE_DATE = Calendar.getInstance(); 
    static { 
     OLE_BASE_DATE.set(1899, 11, 30); // 1899-12-30 
    } 

    static double oleDateFormat(Calendar cal) { 
     long diff = cal.getTimeInMillis() - OLE_BASE_DATE.getTimeInMillis(); 
     return diff/86400000L; 
    } 

    public static void main(String[] args) { 
     // get outlook instance etc... 
     OleAutomation appointment = invoke(outlook, "CreateItem", 1).getAutomation(); 
     appointment.setProperty(property(appointment, "Subject"), new Variant("Test")); 
     // compute the appointment start & stop 
     double todayAtNoon = oleDateFormat(Calendar.getInstance()) + 0.5; 
     double todayAt13_12 = oleDateFormat(Calendar.getInstance()) + 0.55; 
     // set the vars 
     appointment.setProperty(property(appointment, "Start"), new Variant(String.valueOf(todayAtNoon))); 
     appointment.setProperty(property(appointment, "End"), new Variant(String.valueOf(todayAt13_12))); 
     appointment.setProperty(property(appointment, "Location"), new Variant("At foo's")); 
     // do more stuff 
    } 
} 

더 많은 정보처럼 보일 것이다 VB

+0

안녕하세요, 알렉스, 코드를 이용해 oleDateFormat을 가져 주셔서 감사합니다. prgm에는 약간의 수정이 있었으므로 날짜를 float으로 사용해야합니다. appointment.setProperty (속성 (약속, 시작)), 새 Variant ((float) todayAtNoon)); 약속 .setProperty (속성 (약속, "끝"), 새 변종 ((부동) todayAt13_12))); – Anu

+0

잘 해냈다 ;-) – Alex

+0

@Alex를 공유하기위한 Thnx, 나는 미팅 약속을 호출하는 방법을 찾고 있는데 거기에 헤더가 있어야한다. –

관련 문제