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.
Here's an example form section -
// 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");
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...
North America
Europe, Middle East and Africa
Asia Pacific