DateTime.IsInNextHour

D

T

The M Code Behind the Power Query M function DateTime.IsInNextHour

What is DateTime.IsInNextHour Function?

The DateTime.IsInNextHour function is used to determine whether a given datetime value falls within the next hour. It returns a Boolean value that is true if the datetime value falls within the next hour, and false if it does not.

The syntax for DateTime.IsInNextHour function is:


DateTime.IsInNextHour(dateTime as any) as logical


The dateTime argument is a datetime value that you want to test.

The M Code Behind DateTime.IsInNextHour Function

Under the hood, the DateTime.IsInNextHour function is written in the M language, which is the programming language used in Power Query. The M language is a functional programming language that is easy to read and write.

The M code behind DateTime.IsInNextHour function is:


(dateTime) => DateTime.LocalNow() <= DateTime.LocalFromText(Text.Combine({Date.ToText(dateTime, "yyyy-MM-dd"), " ", Time.ToText(Time.AddHours(Time.FromText(Text.End(Text.FromText(Time.ToText(dateTime, "hh:mm:ss"), 8), 2)), 1), "hh:mm:ss")}), "yyyy-MM-dd hh:mm:ss")


Let's break down this code to understand how it works.

Step 1: Convert datetime to text

The first step in this function is to convert the given datetime value to text format using the Date.ToText and Time.ToText functions. We use these functions to extract the date and time components separately.


Text.Combine({Date.ToText(dateTime, “yyyy-MM-dd”), ” “, Time.ToText(Time.FromText(Text.End(Text.FromText(Time.ToText(dateTime, “hh:mm:ss”), 8), 2)), “hh:mm:ss”)})


Step 2: Add one hour to the time

Next, we add one hour to the time component using the Time.AddHours function.


Time.AddHours(Time.FromText(Text.End(Text.FromText(Time.ToText(dateTime, “hh:mm:ss”), 8), 2)), 1)


Step 3: Combine date and time into a single datetime value

Finally, we combine the date and time components into a single datetime value using the DateTime.LocalFromText function.


DateTime.LocalFromText(Text.Combine({Date.ToText(dateTime, “yyyy-MM-dd”), ” “, Time.ToText(Time.AddHours(Time.FromText(Text.End(Text.FromText(Time.ToText(dateTime, “hh:mm:ss”), 8), 2)), 1), “hh:mm:ss”)}), “yyyy-MM-dd hh:mm:ss”)


Step 4: Check if the datetime value falls within next hour

The final step in this function is to compare the result of the previous step with the current datetime value using the DateTime.LocalNow function. If the result of the previous step is less than or equal to the current datetime value, then the function returns true. Otherwise, it returns false.


DateTime.LocalNow() <= DateTime.LocalFromText(Text.Combine({Date.ToText(dateTime, "yyyy-MM-dd"), " ", Time.ToText(Time.AddHours(Time.FromText(Text.End(Text.FromText(Time.ToText(dateTime, "hh:mm:ss"), 8), 2)), 1), "hh:mm:ss")}), "yyyy-MM-dd hh:mm:ss")


In conclusion, the DateTime.IsInNextHour function is a powerful tool that can be used to determine whether a given datetime value falls within the next hour. The M code behind this function is a series of steps that work together to extract the date and time components, add one hour to the time, combine the components into a single datetime value, and then compare the result with the current datetime value. Understanding the M code behind this function can help you to better understand how Power Query works and how to use it to your advantage.

Power Query and M Training Courses by G Com Solutions (0800 998 9248)

Upcoming Courses

Contact Us

    Subject

    Your Name (required)

    Company/Organisation

    Email (required)

    Telephone

    Training Course(s)

    Your Message

    Upload Example Document(s) (Zip multiple files)