It should now be obvious that DAX's time intelligence functions are simply shorthand for date filtering operations that we can accomplish through base DAX functions. Therefore, any DAX time intelligence function can be duplicated via DAX code that does not utilize DAX's time intelligence functions. By doing things the hard way, we actually gain more control over exactly how our date filtering calculations work as well as make them supportable in more circumstances, such as when using DirectQuery. For example, we can use similar patterns to this recipe and our own non-standard quarters (refer to theĀ Creating quarters recipe in this chapter) to replace DAX functions such as CLOSINGBALANCEQUARTER, OPENINGBALANCEQUARTER, ENDOFQUARTER, PREVIOUSQUARTER, and STARTOFQUARTER.