8

I want first Sunday of a year. I can fetch 1st day of year and add the remaining days for first Sunday (say for 2 days for year 2016) and now want the new date by adding milliseconds for thsoe 2 days. But I am not getting desired result. Please, help.

<script> 

    //I want to get date for 1st Sunday of Year
    var year = 2016;
    var date = new Date(year,0,1);
    var day = date.getDay();

    var dayDifference = ((7 - day)%7);
    var firstSunday = date.getMilliseconds() + (dayDifference * 86400000);

    console.log(new Date(firstSunday));

</script> 

RESULT:

Sat Jan 03 1970 05:30:00 GMT+0530 (India Standard Time)

I expect date to be of 03 Jan 2016

ozil
  • 6,930
  • 9
  • 33
  • 56
Deadpool
  • 7,811
  • 9
  • 44
  • 88
  • 1
    Try `console.log( date.getMilliseconds() )`. What you're looking for is `date.getTime()`, or actually `date.setDate()` if you want to [do it correctly](http://stackoverflow.com/questions/563406/add-days-to-javascript-date). – JJJ Nov 30 '16 at 07:39

2 Answers2

5

You can simple use setDate method to get desired result.

var year = 2016;
var date = new Date(year,0,1);
var day = date.getDay();

var dayDifference = ((7 - day)%7);
date.setDate(date.getDate() + dayDifference)
Mairaj Ahmad
  • 14,434
  • 2
  • 26
  • 40
3

Try This

var year = 2016;
var date = new Date(year, 0, 1);
var day = date.getDay();

var dayDifference = ((7 - day) % 7);
var firstSunday = date.getTime() + (dayDifference * 86400000);

console.log(new Date(firstSunday));
ozil
  • 6,930
  • 9
  • 33
  • 56