メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

単純な .NET クラスへのアクセス

R2026a

System.DateTime の例

この例は、システムに既に読み込まれている機能にアクセスする方法を示しています。System.Windows.Forms の例では、アセンブリを MATLAB® に読み込む方法を示します。

この例に続くトピックでは、MATLAB で .NET をお使いいただくときに役立つ、主要な手順と考え方を紹介します。アセンブリの詳細については、アセンブリは .NET クラスのライブラリを参照してください。.NET クラス ライブラリの詳細については、.NET に関する詳細で説明されているサードパーティのドキュメンテーションを参照してください。

Microsoft® .NET アセンブリには、MATLAB で使用できる System.DateTime などのクラスがあります。以下のコードはオブジェクトを作成し、DateTime プロパティおよびメソッドを使用して、現在の日付と時刻に関する情報を表示します。

% Create object for current date and time
netDate = System.DateTime.Now;

% Display properties
netDate.DayOfWeek
netDate.Hour

% Call methods
ToShortTimeString(netDate)
AddDays(netDate,7);

% Call static method
System.DateTime.DaysInMonth(netDate.Year,netDate.Month)

System.Windows.Forms の例

この例では、関数 NET.addAssembly を使用してアセンブリを読み込むことにより、.NET クラスを MATLAB で認識できるようにする方法を説明します。

他の .NET クラスと同様に、Windows.Forms クラスはアセンブリの一部です。クラスを操作するには、NET.addAssembly を呼び出してアセンブリを MATLAB に読み込みます。ベンダーのドキュメンテーションには、アセンブリ名が記載されています。

NET.addAssembly("System.Windows.Forms")
import System.Windows.Forms.*
buttons = MessageBoxButtons.YesNo
result = MessageBox.Show("Yes or no?","Message Box",buttons)

プロンプトに応答してメッセージ ボックスを閉じます。

MATLAB は起動時にそのアセンブリ (mscorlib) を動的に読み込むため、System.DateTime の例は関数 NET.addAssembly を呼び出しません。

コンストラクターからの .NET オブジェクトの作成

前節の例では Now プロパティを使用して DateTime オブジェクトを作成しました。次の例では、いずれかの DateTime "コンストラクター" を使用してオブジェクトを作成する方法を示します。

myDate = System.DateTime(2000,1,31);

このコンストラクター、つまり任意のメソッドを呼び出すには、その引数リスト、つまり "関数のシグネチャ" を知らなければなりません。ベンダーの製品ドキュメンテーションには関数のシグネチャが記載されています。MATLAB 関数 methodsview を使用してシグネチャを表示することもできます。「methodsview("System.DateTime")」と入力し、次のような DateTime エントリのテーブルを検索します。

名前戻り値の型引数
DateTimeSystem.DateTime obj

(int32 scalar year,...)

.NET ドキュメンテーションによると、次のシグネチャは DateTime 構造体の新しいインスタンスを指定した年、月、日に初期化します。この情報は myDate 変数に必要です。

名前戻り値の型引数
DateTimeSystem.DateTime obj(int32 scalar year,
int32 scalar month,
int32 scalar day)

詳細については、.NET メソッドの呼び出しを参照してください。

.NET オブジェクトの情報の表示

ベンダーのドキュメンテーションには DateTime オブジェクトに関する情報が記載されていますが、properties や methods などの MATLAB コマンドを使用して .NET オブジェクトの情報を表示できます。以下に例を示します。

% Display an object
netDate = System.DateTime.Now
% Display its properties
properties System.DateTime
% Display its methods
methods System.DateTime

MATLAB に次の情報が表示されます。(プロパティ値は特定の日時を反映します)。

netDate = 
  System.DateTime
  Package: System

  Properties:
           Date: [1x1 System.DateTime]
            Day: 11
      DayOfWeek: [1x1 System.DayOfWeek]
      DayOfYear: 11
           Hour: 12
           Kind: [1x1 System.DateTimeKind]
    Millisecond: 413
         Minute: 31
          Month: 1
            Now: [1x1 System.DateTime]
         UtcNow: [1x1 System.DateTime]
         Second: 38
          Ticks: 634303458984133595
      TimeOfDay: [1x1 System.TimeSpan]
          Today: [1x1 System.DateTime]
           Year: 2011
       MinValue: [1x1 System.DateTime]
       MaxValue: [1x1 System.DateTime]
  Methods, Superclasses
Properties for class System.DateTime:

    Date
    Day
    DayOfWeek
    DayOfYear
    Hour
    Kind
    Millisecond
    Minute
    Month
    Now
    UtcNow
    Second
    Ticks
    TimeOfDay
    Today
    Year
    MinValue
    MaxValue
Methods for class System.DateTime:

Add                    GetType                ToUniversalTime        
AddDays                GetTypeCode            addlistener            
AddHours               IsDaylightSavingTime   delete                 
AddMilliseconds        Subtract               eq                     
AddMinutes             ToBinary               findobj                
AddMonths              ToFileTime             findprop               
AddSeconds             ToFileTimeUtc          ge                     
AddTicks               ToLocalTime            gt                     
AddYears               ToLongDateString       isvalid                
CompareTo              ToLongTimeString       le                     
DateTime               ToOADate               lt                     
Equals                 ToShortDateString      ne                     
GetDateTimeFormats     ToShortTimeString      notify                 
GetHashCode            ToString               

Static methods:

Compare                Parse                  op_GreaterThan         
DaysInMonth            ParseExact             op_GreaterThanOrEqual  
FromBinary             SpecifyKind            op_Inequality          
FromFileTime           TryParse               op_LessThan            
FromFileTimeUtc        TryParseExact          op_LessThanOrEqual     
FromOADate             op_Addition            op_Subtraction         
IsLeapYear             op_Equality 

詳細については、以下を参照してください。

.NET データ型の紹介

MATLAB で .NET オブジェクトを使用するには、MATLAB での .NET データ型の処理方法を理解しなければなりません。たとえば、次の DateTime プロパティおよびメソッドにより、さまざまな .NET データ型の変数が作成されます。

netDate = System.DateTime.Now;
thisDay = netDate.DayOfWeek;
thisHour = netDate.Hour;
thisDate = ToLongDateString(netDate);
thisTime = ToShortTimeString(netDate);
monthSz = System.DateTime.DaysInMonth(netDate.Year,netDate.Month);
whos
Name           Size  Bytes  Class

netDate        1x1     112  System.DateTime
monthSz        1x1       4  int32
thisDate       1x1     112  System.String
thisDay        1x1     104  System.DayOfWeek
thisHour       1x1       4  int32
thisTime       1x1     112  System.String

MATLAB では、型がクラス名として表示されます。

これらの変数を MATLAB で使用するには、以下の内容を検討します。

  • 数値 (int32) — MATLAB は .NET 数値型を等価な MATLAB 型にマッピングして保持します。この例では、h は int32 型です。

    h = thisHour + 1;
    

    詳細については.NET スカラー データの MATLAB への返却と数値型を参照してください。

  • 文字列 (System.String) — System.String オブジェクトを MATLAB string に変換するには、関数 string を使用します。

    disp("The time is " + string(thisTime))
  • オブジェクト (System.DateTime) — DateTime オブジェクトの使用法については、.NET クラス ライブラリのドキュメンテーションを参照してください。

  • 列挙型 (System.DayOfWeek) — DateTime のドキュメンテーションによると、DayOfWeek は列挙型です。列挙メンバーを表示するには、以下を入力します。

    enumeration(thisDay)

    詳細については、MATLAB での .NET 列挙型を参照してください。

サポートされている型とマッピングの一覧については、.NET オブジェクトから返されるデータの処理を参照してください。

参考

トピック