Can please someone review and give me suggestions for improving this code? I am very new to JavaScript.
I need to create a method in JavaScript which will take parameters as
DateRange
(possible values asToday
/This Week
/This Month
BooleanFullDate
(possible values as true/false)
Now, when the parameter value is Today
, it should return
10/23/2013
10/23/2013
When This Week
and BooleanFullDate
are true
, it should return
10/20/2013
10/26/2013
When This Week
and BooleanFullDate
are false
, it should return
10/20/2013
10/23/2013
When This Month
and BooleanFullDate
are true
, it should return
10/01/2013
10/31/2013
When This Month
and BooleanFullDate
are false
, it should return
10/01/2013
10/23/2013
For which I have written my code here.
Lastly, can someone please suggest improvements for the code?
EDIT:- Source code
function GetStartAndEnd(dateRange, bGetFullRange) {
var dateObject = new Date();
var dateobj = new Date()
var month = dateobj.getMonth()+1
var day = dateobj.getDate()
var year = dateobj.getFullYear()
var start = undefined;
var end = undefined;
if (dateRange.toLowerCase() == "today") {
start = month + "/" + day + "/" + year;
end = month + "/" + day + "/" + year;
} else if (dateRange.toLowerCase() == "this week") {
var curr = new Date;
var firstDay = new Date(curr.setDate(curr.getDate() - curr.getDay()));
var lastDay = new Date(curr.setDate(curr.getDate() - curr.getDay() + 6));
var fmonth = firstDay.getMonth()+1;
var fday = firstDay.getDate();
var fyear = firstDay.getFullYear();
start = fmonth + "/" + fday + "/" + fyear;
var lmonth = lastDay.getMonth()+1;
var lday = lastDay.getDate();
var lyear = lastDay.getFullYear();
end = lmonth + "/" + lday + "/" + lyear;
} else if (dateRange.toLowerCase() == "this month" && bGetFullRange) {
var date = new Date(),
y = date.getFullYear(),
m = date.getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);
var fmonth = firstDay.getMonth()+1;
var fday = firstDay.getDate();
var fyear = firstDay.getFullYear();
start = fmonth + "/" + fday + "/" + fyear;
var lmonth = lastDay.getMonth()+1;
var lday = lastDay.getDate();
var lyear = lastDay.getFullYear();
end = lmonth + "/" + lday + "/" + lyear;
} else if (dateRange.toLowerCase() == "this month" && !bGetFullRange) {
var date = new Date(),
day = date.getDate(),
y = date.getFullYear(),
m = date.getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);
var fmonth = firstDay.getMonth()+1;
var fday = firstDay.getDate();
var fyear = firstDay.getFullYear();
start = fmonth + "/" + fday + "/" + fyear;
end = m+1 + "/" + day + "/" + y;
}
console.log({
"start": start,
"end": end
});
return {
"start": start,
"end": end
}
}
GetStartAndEnd("Today");
GetStartAndEnd("this week");
GetStartAndEnd("this month", true);
GetStartAndEnd("this month", false);