arcs stacked around with date

by Igor Cuckovic

JavaScript

// total 92, 30 orange, 62 gray, first orange

// current date
var currentDate = (function () {
    var arr = (new Date()).toString().split(' ');
    return arr[2] + " " + arr[1] + " " + arr[3];
}());






// day of month, days left in month
var daysInCurrentMonth = (function () {
    var today = new Date()
    lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1, 0);
    return lastDayOfMonth.toString().split(' ')[2];
}());

var dayInCurrentMonth = (function () {
    var arr = (new Date()).toString().split(' ');
    return arr[2];
}());

var daysLeftInMonth = (function () {
    return daysInCurrentMonth - dayInCurrentMonth;
}());


// day of year , days left in year
var dayOfYear = (function () {
    var now = new Date();
    var start = new Date(now.getFullYear(), 0, 0);
    var diff = now - start;
    var oneDay = 1000 * 60 * 60 * 24;
    return Math.floor(diff / oneDay);
}())


// day of quarter, days left in quarter
var daysLeftInQuarter = (function () {
  var d = d || new Date();
  var qEnd = new Date(d);
  qEnd.setMonth(qEnd.getMonth() + 3 - qEnd.getMonth() % 3, 0);
  return Math.floor((qEnd - d) / 8.64e7);
}())

var getQuarter = (function () {
  var d = d || new Date(); // If no date supplied, use today
  var q = [1,2,3,4];
  return q[Math.floor(d.getMonth() / 3)];
}());

var daysInQuarter = (function () {
    var quarters = [90, 91, 92, 92];
    return quarters[getQuarter - 1]
}());


var dayOfQuarter = (function () {
    var quarters = [90, 91, 92, 92];
    return quarters[getQuarter - 1] - daysLeftInQuarter;

}());

console.log(daysLeftInMonth);


var numberOfArcs = 60;

var linearScale = d3.scale.linear()
                           .domain([0,10000])
                           .range([0,60]);

var r = 182 / 2;
var p = Math.PI * 2;

var totalDays = daysInQuarter,
    currentDay = dayOfQuarter;

var w = 200,
    h = 200,
    data = d3.range(totalDays),
    data1 = d3.range(currentDay),
    angle =...