﻿ Quarter date calculations

# Quarter date functions VBA

## First day in quarter

Given a certain date, what is the first day (date) in it's quarter. For example `dt = #6/23/2022#` returns `4/1/2022`.

``````
Dim dtFirstDayInQuarter As Date
Dim dt As Date: dt = #6/23/2022#
dtFirstDayInQuarter = DateSerial(Year(dt), Int((Month(dt) - 1) / 3) * 3 + 1, 1)
``````

## Last day in quarter

Given a certain date, what is the last day (date) in it's quarter. For example `dt = #6/23/2022#` returns `6/30/2022`.

``````
Dim dtLastDayInQuarter As Date
Dim dt As Date: dt = #6/23/2022#
dtLastDayInQuarter = DateSerial(Year(dt), Int((Month(dt) - 1) / 3) * 3 + 4, 0)
``````

## First month in quarter

Given a certain date, what is the first month (number) in it's quarter. For example `dt = #6/23/2022#` returns `4`.

``````
Dim dtFirstMonthInQuarter As Integer
Dim dt As Date: dt = #6/23/2022#
dtFirstMonthInQuarter = Int((Month(dt) - 1) / 3) * 3 + 1
``````

## Last month in quarter

Given a certain date, what is the last month (number) in it's quarter. For example `dt = #6/23/2022#` returns `6`.

``````
Dim iLastMonthInQuarter As Integer
Dim dt As Date: dt = #6/23/2022#
iLastMonthInQuarter = Int((Month(dt) - 1) / 3) * 3 + 3
``````

Below image shows the Code VBA add-in support for VBA Date procedures.