2012-03-16 8 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日以降の日数をmidnightで示します。 – Alex

+0

JavaでOLEオートメーションの日付を取得する方法は? – Anu

答えて

0

、OLEの日付は1899年12月30日からの日数として格納されています。 その番号を簡単に計算できます。あなたがそれを持っているとき、私は思う標準的な変種を使用して、右のOLEプロパティに渡します。

は、残念ながら、私は、SWTはここにインストールされていないと、コードをテストすることはできませんが、それは完全な例では用found hereにすることができる見通しの自動化でその

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に小さな修正があり、日付を浮動小数点として、 予定.setProperty(プロパティ(予定)、 "開始")、新しいバリアント((float)todayAtNoon)); 予定.setProperty(プロパティ(予定、終了)、新しいバリアント((フロート)todayAt13_12)); – Anu

+0

これはうまくいきました;-) – Alex

+0

@Alexを共有するためのThnx、私は会議アポイントメントを呼び出す方法を探していましたが、そのためのヘッダーが必要です。 –

関連する問題