Time sheet

Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

Hello, greeting from Indonesia

Im new for javascript, im trying make timesheet for daily planner. The first day is monday. I want to make  pdf automatically fill the first date for next monday. example: now is monday 8/14/2017, the date fill with this date, but if i make timesheet tomorrow, (tuesday 8/15/2017) the first date will show next monday date (8/21/2017). Could you help me. Thank you and im sorry my english is terrible. Thanks

Most Valuable Participant
Correct answer by try67 | Most Valuable Participant

OK. Let's say the field is called "Monday". Go to Tools - JavaScript - Document JavaScripts, create a new item (let's call it "scripts"), and then paste this code into it (delete any pre-existing code that is generated there):

var d = new Date();

while (d.getDay()!=1) d.setDate(d.getDate()+1);

this.getField("Monday").value = util.printd("mm/dd/yyyy", d);

TOPICS
Acrobat SDK and JavaScript, Windows

Views

304

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

Time sheet

Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

Hello, greeting from Indonesia

Im new for javascript, im trying make timesheet for daily planner. The first day is monday. I want to make  pdf automatically fill the first date for next monday. example: now is monday 8/14/2017, the date fill with this date, but if i make timesheet tomorrow, (tuesday 8/15/2017) the first date will show next monday date (8/21/2017). Could you help me. Thank you and im sorry my english is terrible. Thanks

Most Valuable Participant
Correct answer by try67 | Most Valuable Participant

OK. Let's say the field is called "Monday". Go to Tools - JavaScript - Document JavaScripts, create a new item (let's call it "scripts"), and then paste this code into it (delete any pre-existing code that is generated there):

var d = new Date();

while (d.getDay()!=1) d.setDate(d.getDate()+1);

this.getField("Monday").value = util.printd("mm/dd/yyyy", d);

TOPICS
Acrobat SDK and JavaScript, Windows

Views

305

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Aug 14, 2017 0
Most Valuable Participant ,
Aug 14, 2017

Copy link to clipboard

Copied

Your English is not terrible at all... It's actually very good. No need to apologize.

So when do you want the dates to update? When you open a file? When you click on a button in the file?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

try67

Thank you for replying so fast....

Actually i want the dates update when the file opened, so no need to fill the date manually, thank you so much

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

im sorrry, i make timesheet for pdf intearctive, thanks

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Most Valuable Participant ,
Aug 14, 2017

Copy link to clipboard

Copied

OK. Let's say the field is called "Monday". Go to Tools - JavaScript - Document JavaScripts, create a new item (let's call it "scripts"), and then paste this code into it (delete any pre-existing code that is generated there):

var d = new Date();

while (d.getDay()!=1) d.setDate(d.getDate()+1);

this.getField("Monday").value = util.printd("mm/dd/yyyy", d);

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

Oh God, finally, thanks...its working.

Could you help me again, im sorry i forgot, next day is tuesday, and i want to automatically fill it with the date, could you help me, im trying to google it and find this

date(); // call my function

var d = util.scand("mm/dd/yy", event.value);   // retrieve the date from the Date1 field

var date2 = this.getField("Date2");                   // creates a variable for the Date2 field

var d2 = d.valueOf();                                        // converts d2 to a number that we can calculate with

d2 += 1000 * 60 * 60 * 24 * 7;  // adds 90 days (1000 miliseconds times 60 seconds times 60 minutes times 24 hours times 90 days

d3 = new Date(d2);                                          // create a new date based on the d2 variable

date2.value = util.printd("dd mmmm yyyy", d3);       // format and assign the new date variable to the Date2 field

but it doesnt work and the error messages always appear

Thank you...you are my hero

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Most Valuable Participant ,
Aug 14, 2017

Copy link to clipboard

Copied

You can use the same code as above, just change the field name and this part:

d.getDay()!=1

To:

d.getDay()!=2

For Wednesday use 3, Thursday 4, etc.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Most Valuable Participant ,
Aug 14, 2017

Copy link to clipboard

Copied

By the way, if you're interested, I've developed a script that allows you to set up such date calculations easily and without having to write any code. You can find it here: Custom-made Adobe Scripts: Acrobat -- Apply Automatic Date Calculation

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

Ohhh.greattt..this is work, Thank you

I will inform my boss if he interested your usefull script, thank you

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 1
Community Beginner ,
Aug 14, 2017

Copy link to clipboard

Copied

Hello, im sorry, i get a mistake, after i change the script to "d.getDay()!=2" for Tuesday, the date is 08/15/2017, what i mean is next day after first Monday after this day (08/22/2017)

Could you help me where is my mistake? thanks

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 14, 2017 0
Most Valuable Participant ,
Aug 15, 2017

Copy link to clipboard

Copied

Ah yes, I see the problem... In that case you can't use my code. You will need to add days to the original Monday date.

You can actually do it from the original script, like this:

var d = new Date();

while (d.getDay()!=1) d.setDate(d.getDate()+1);

this.getField("Monday").value = util.printd("mm/dd/yyyy", d);

d.setDate(d.getDate()+1);

this.getField("Tuesday").value = util.printd("mm/dd/yyyy", d);

d.setDate(d.getDate()+1);

this.getField("Wednesday").value = util.printd("mm/dd/yyyy", d);

// etc.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 15, 2017 1
Community Beginner ,
Aug 17, 2017

Copy link to clipboard

Copied

Greaattt...you really A maestro...its work..thanks

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 17, 2017 0