# LocalDate

## `LocalDate` Class

The `LocalDate` class represents a date (year, month, and day) without a time or time zone. It provides methods for creating, manipulating, and comparing date values.

```typescript
var localdate = LocalDate.of(2023, 10, 24); // LDATE 2023-10-24
```

### Static Methods

#### `now()`

* Returns the current date.
* Example Usage:

  ```java
  var currentDate = LocalDate.now();
  ```

#### `parse(text: String)`

* Parses the input text to create a `LocalDate` instance.
* Example Usage:

  ```java
  var parsedDate = LocalDate.parse("2023-10-24");
  ```

#### `of(year: Integer, month: Integer, dayOfMonth: Integer)`

* Creates a `LocalDate` instance with the specified year, month, and day values.
* Example Usage:

  ```java
  var customDate = LocalDate.of(2023, 10, 24);
  ```

#### `ofYearDay(year: Integer, dayOfYear: Integer)`

* Creates a `LocalDate` instance based on the year and day of the year.
* Example Usage:

  ```java
  var dateFromYearDay = LocalDate.ofYearDay(2023, 100);
  ```

#### `ofEpochDay(epochDay: Long)`

* Creates a `LocalDate` instance based on the number of days since the epoch (January 1, 1970).
* Example Usage:

  ```java
  var dateFromEpochDay = LocalDate.ofEpochDay(18898);
  ```

***

### Getter Methods

#### `getYear()`

* Gets the year field.
* Returns the year as an `int` value.
* Example Usage:

  ```java
  var year = customDate.getYear();
  ```

#### `getMonthValue()`

* Gets the month-of-year field from 1 to 12.
* Returns the month as an `int` from 1 to 12.
* Example Usage:

  ```java
  var month = customDate.getMonthValue();
  ```

#### `getDayOfMonth()`

* Gets the day-of-month field.
* Returns the day-of-month as an `int` from 1 to 31.
* Example Usage:

  ```java
  var dayOfMonth = customDate.getDayOfMonth();
  ```

#### `getDayOfYear()`

* Gets the day-of-year field.
* Returns the day-of-year as an `int` from 1 to 365 (or 366 in a leap year).
* Example Usage:

  ```java
  var dayOfYear = customDate.getDayOfYear();
  ```

***

### Date Manipulation Methods

#### `minusYears(yearsToSubtract: Long)`

* Returns a new `LocalDate` with the specified number of years subtracted.
* Example Usage:

  ```java
  var newDate = customDate.minusYears(1);
  ```

#### `minusMonths(monthsToSubtract: Long)`

* Returns a new `LocalDate` with the specified number of months subtracted.
* Example Usage:

  ```java
  var newDate = customDate.minusMonths(2);
  ```

#### `minusWeeks(weeksToSubtract: Long)`

* Returns a new `LocalDate` with the specified number of weeks subtracted.
* Example Usage:

  ```java
  var newDate = customDate.minusWeeks(3);
  ```

#### `minusDays(daysToSubtract: Long)`

* Returns a new `LocalDate` with the specified number of days subtracted.
* Example Usage:

  ```java
  var newDate = customDate.minusDays(10);
  ```

#### `plusDays(daysToAdd: Long)`

* Returns a new `LocalDate` with the specified number of days added.
* Example Usage:

  ```java
  var newDate = customDate.plusDays(5);
  ```

#### `daysUntil(endDate: LocalDate)`

* Calculates the number of days until the specified end date.
* Example Usage:

  ```java
  var daysUntil = customDate.daysUntil(endDate);
  ```

#### `monthsUntil(endDate: LocalDate)`

* Calculates the number of months until the specified end date.
* Example Usage:

  ```java
  var monthsUntil = customDate.monthsUntil(endDate);
  ```

#### `toEpochDay()`

* Returns the number of days since the epoch (typically January 1, 1970).
* Example Usage:

  <pre class="language-java"><code class="lang-java"><strong>var epochDay = customDate.toEpochDay();
  </strong></code></pre>

***

### Comparison Methods

#### `isBefore(other: LocalDate)`

* Checks if the current date is before the specified date.
* Returns `true` if the current date is before `other`, `false` otherwise.
* Example Usage:

  ```java
  var isBefore = customDate.isBefore(parsedDate);
  ```

#### `isAfter(other: LocalDate)`

* Checks if the current date is after the specified date.
* Returns `true` if the current date is after `other`, `false` otherwise.
* Example Usage:

  ```java
  var isAfter = customDate.isAfter(parsedDate);
  ```

***

### Date-Time Combination Methods

#### `atStartOfDay()`

* Combines the date with the time of midnight to create a `LocalDateTime` at the start of the date.
* Example Usage:

  ```java
  var startOfDay = customDate.atStartOfDay();
  ```

#### `atTime(time: LocalTime)`

* Combines the date with the specified `LocalTime` to create a `LocalDateTime`.
* Example Usage:

  ```java
  var dateTime = customDate.atTime(LocalTime.of(15, 30));
  ```

#### `atTime(hour: Integer, minute: Integer, second: Integer)`

* Combines the date with the specified hour, minute, and second to create a `LocalDateTime`.
* Example Usage:

  ```java
  var dateTime = customDate.atTime(15, 30, 45);
  ```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.b2winsuite.com/5.4/scripting/types-and-objects/objects/localdate.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
