Share via


Validate if the date selected using date picker control, as weekday or weekend, in SharePoint Infopath form

Hello, Did you try validating the date selected is a weekday or weekend on an infopath form. This post will help how you can validate the selected date as weekday or weekend. If its weekend validate and show appropriate message to user to correct the entry. 

 

Here is the solution how you can achieve it in few simple steps:

[Note: This will works for office 365 sharepoint sites as well]

1. Select date picker on Infopath form designer name it ( From Date in this case).

 

2. From ribbon click on manage rule

 

 

 

 

 

 

3. Select a new Validation rule and name it as you prefer. In my case its Weekend RULE

 

 

 

4. In the condition, you need to check for the date entered is weekend. To do that first, we need find the weekdays in such a way that sunday =1 through saturday = 7

XPath function to find the week of the day

(number(substring( ../my:From_x0020_Date, 9, 2)) + number(number(substring(../my:From_x0020_Date, 1, 4)) - floor((14 - number(substring(../my:From_x0020_Date, 6, 2))) div 12)) + floor(number(number(substring(../my:From_x0020_Date, 1, 4)) - floor((14 - number(substring(../my:From_x0020_Date, 6, 2))) div 12)) div 4) - floor(number(number(substring(../my:From_x0020_Date, 1, 4)) - floor((14 - number(substring(../my:From_x0020_Date, 6, 2))) div 12)) div 100) + floor(number(number(substring(../my:From_x0020_Date, 1, 4)) - floor((14 - number(substring(../my:From_x0020_Date, 6, 2))) div 12)) div 400) + floor(31 * number(number(substring(../my:From_x0020_Date, 6, 2)) + 12 * floor((14 - number(substring(../my:From_x0020_Date, 6, 2))) div 12) - 2) div 12)) mod 7 + 1

In here, You need change  ./my:From_x0020_Date as your field name appropriately, ex; if your field name is input date it will be  ./my:input_x0020_date

(Note: This formula is found in several online blogs)

This formula brings output value between 1 to 7.

1 meaning Sunday and 7 is Saturday.

 

5. Now, we need to check if the date selected from the date picker(From date) field is weekday or not and show appropriate validation to user.

To do that perform below: Edit the Condition, check for date field as not blank

And, next select the expression from dropdown and 

Now, enter the XPath condition given above and check if its equal to 1(for SUNDAY) OR 7(for SATURDAY)

 And last set screen message to users

 

Output

 

Hope this is useful. 

 

Share your thoughts if its helpful to you in anyway. Thanks for visiting..

Raghav