9 Replies Latest reply on Jul 19, 2012 12:58 PM by DKinsley

# Increase by one calendar day

The user enters a Monday date in a date/time object. It is, and needs to be displayed in full (Monday, July 16, 2012) When the user then clicks a check box object, the remaining days of that week are populated into four other date.time objects. I was trying to use the following FormCalc to verify the user selected a "Monday" date and if yes, then add one day for each other field but it does not work.

// Get the number of days since epoch (Jan 1, 1900).

var dateNum = Date2Num(Day1.formattedValue,"M/D/YYYY")

// Convert the number of days to the full weekday name.

MondayCheck.rawValue = Num2Date(dateNum,"EEEE")

if (MondayCheck.rawValue ne "Monday") then

xfa.host.messageBox("First Requested Day Must Be a Monday.");

\$.rawValue = "";

endif

DayTwo.Day2.rawValue = Num2Date(Date2num(Day1.rawValue,"YYYY-MM-DD")+1,"EEEE, MMMM D, YYYY");

DayThree.Day3.rawValue = Num2Date(Date2num(Day1.rawValue,"YYYY-MM-DD")+1,"EEEE, MMMM D, YYYY");

DayFour.Day4.rawValue = Num2Date(Date2num(Day1.rawValue,"YYYY-MM-DD")+1,"EEEE, MMMM D, YYYY");

DayFive.Day5.rawValue = Num2Date(Date2num(Day1.rawValue,"YYYY-MM-DD")+1,"EEEE, MMMM D, YYYY");

• ###### 1. Re: Increase by one calendar day

I've done something similar but found it easier to use more variables:

var endDate = Date2Num(\$,"YYYY-MM-DD")

var dayOfWeek = Num2Date(endDate, "E")

if (dayOfWeek <> 7) then

xfa.host.messageBox("Ending date must be a Saturday")

\$ = null

xfa.host.setFocus("\$")

endif

and then I populate the other fields with this (I don't use date fields for the calculated dates, just text fields):

Pg1.subTableAux.Table1.Row1[6].Date = Num2Date(endDate - 0, "DD")

Pg1.subTableAux.Table1.Row1[5].Date = Num2Date(endDate - 1, "DD")

Pg1.subTableAux.Table1.Row1[4].Date = Num2Date(endDate - 2, "DD")

etc...

• ###### 2. Re: Increase by one calendar day

I assume this is in FormCalc. Do you know if this will work using date/time fields instead of textfields?

-Don

• ###### 3. Re: Increase by one calendar day

Yup, it's FormCalc - you can't use Date2Num, etc., in JavaScript.

It will work with date fields but I found the text fields easier to deal with.

• ###### 4. Re: Increase by one calendar day

I'll give it a try.

-Don

• ###### 5. Re: Increase by one calendar day

If I don't want this script to run unless a checkbox is checked first, how can I write a FormCalc statement for that>

Thanks again!

• ###### 6. Re: Increase by one calendar day

You'd need to wrap the whole thing in another if statement to check the value of the checkbox.

Or you could have the checkbox enable/disable the object that is doing the calculation.

• ###### 7. Re: Increase by one calendar day

That's the part I am not familiar with. I know javascript if statements but not FormCalc.

Is it like this:

if (checkbox1 = 1) then

etc...

• ###### 8. Re: Increase by one calendar day

Yup it works the same but the FormCalc operators seem to work better (eq instead of =, <> instead of !=, etc.).

if (condition) then

if (condition) then

do stuff

endif

endif

Here's a link to the FormCalc user reference: