- library: '&IDL_MochaBaseSystem;'
  instances:
  # Date And Time Adjustment@adjust Date And Time parm to 'Nth of month'(CD)*P*S
  - calculateDateMethod: '&IDM_Date_And_Time_Adjustment__adjust__Date_And_Time_parm_to_Nth_of_month;'
    index: 848
    forClassId: '&IDC_DateAndTimeAdjustment;'
    verb: 'adjust'
    name: 'Date And Time parm to "Nth of month"'
    module: '&IDI_Module_MochaBaseSystem_OOP_OOPMethodExamples;'
    methodAccess: '&IDI_MethodAccess_RootA2;'
    static: yes
    final: no
    parameters:
      # Date And Time [DT(ms)]
      - instance: '&IDI_WorkData_DateAndTime;'
        required: yes
        nullable: yes

      # Day of the Month [NM]
      - instance: '&IDI_WorkData_DayOfTheMonth;'
        required: yes
        nullable: yes

    returnAttributeId: '&IDA_DateAndTime;'

    # method implementation
    initialDateAttributeId: '&IDA_DateAndTime;'
    timeZoneRSMBId: null
    preIncrement:
    # Common Numeric@get 1(BA)*S(public)[ramb]
    - amountRAMB: '&IDMB_Common_Numeric__get_1;'
      # dateInterval can be one of the following:
      # * An instance of `Date Interval` class
      # * A Return Instance Set Method Binding [RSMB] returning
      #   an instance of a `Date Interval` class
      # * (empty)
      dateInterval: '&IDI_DateInterval_Month;'
      subtract: yes
    setToStartOfInterval: null
    setToEndOfInterval:
      dateInterval: 'Month'
    postIncrement:
    - amountRAMB: '&IDA_DayOfTheMonth;'
      dateInterval: '&IDI_DateInterval_Day;'