diff --git a/index.html b/index.html
index b864356..69468e8 100644
--- a/index.html
+++ b/index.html
@@ -68,8 +68,8 @@
dependencies: 'Task 2',
},
{
- start: '2024-04-08',
- end: '2024-04-10',
+ start: '2024-03-08',
+ end: '2024-05-10',
name: 'Deploy',
id: 'Task 4',
progress: 0,
@@ -108,7 +108,7 @@
// on_hover (task, x, y) {
// console.log("Hover", x, y);
// }
- view_mode: 'Day',
+ view_mode: 'Month',
// view_modes: [
// {
// name: 'Custom Day',
diff --git a/src/bar.js b/src/bar.js
index 9f5b542..f968072 100644
--- a/src/bar.js
+++ b/src/bar.js
@@ -505,11 +505,9 @@ export default class Bar {
const task_start = this.task._start;
const gantt_start = this.gantt.gantt_start;
- const diff = date_utils.diff(
- task_start,
- gantt_start,
- this.gantt.config.unit,
- );
+ const diff =
+ date_utils.diff(task_start, gantt_start, this.gantt.config.unit) /
+ this.gantt.config.step;
let x = diff * column_width;
/* Since the column width is based on 30,
@@ -540,6 +538,13 @@ export default class Bar {
}
compute_duration() {
+ console.log(
+ date_utils.diff(
+ this.task._end,
+ this.task._start,
+ this.gantt.config.unit,
+ ),
+ );
this.duration =
date_utils.diff(
this.task._end,
diff --git a/src/date_utils.js b/src/date_utils.js
index 0dc6e36..2bc7c1b 100644
--- a/src/date_utils.js
+++ b/src/date_utils.js
@@ -122,7 +122,7 @@ export default {
return str;
},
- diff(date_a, date_b, scale = DAY) {
+ diff(date_a, date_b, scale = 'day') {
let milliseconds, seconds, hours, minutes, days, months, years;
milliseconds = date_a - date_b;
@@ -131,13 +131,14 @@ export default {
hours = minutes / 60;
days = hours / 24;
// Calculate months across years
- const yearDiff = date_a.getFullYear() - date_b.getFullYear();
- const monthDiff = date_a.getMonth() - date_b.getMonth();
+ let yearDiff = date_a.getFullYear() - date_b.getFullYear();
+ let monthDiff = date_a.getMonth() - date_b.getMonth();
+ // calculate extra
+ monthDiff += (days % 30) / 30;
/* If monthDiff is negative, date_b is in an earlier month than
date_a and thus subtracted from the year difference in months */
months = yearDiff * 12 + monthDiff;
-
/* If date_a's (e.g. march 1st) day of the month is smaller than date_b (e.g. february 28th),
adjust the month difference */
if (date_a.getDate() < date_b.getDate()) {
@@ -151,16 +152,18 @@ export default {
scale += 's';
}
- return Math.floor(
- {
- milliseconds,
- seconds,
- minutes,
- hours,
- days,
- months,
- years,
- }[scale],
+ return (
+ Math.round(
+ {
+ milliseconds,
+ seconds,
+ minutes,
+ hours,
+ days,
+ months,
+ years,
+ }[scale] * 100,
+ ) / 100
);
},
diff --git a/src/index.js b/src/index.js
index b09ee77..eda0780 100644
--- a/src/index.js
+++ b/src/index.js
@@ -349,6 +349,7 @@ export default class Gantt {
class: 'grid-row',
append_to: rows_layer,
});
+ // FIX
if (
this.options.lines === 'both' ||
this.options.lines === 'horizontal'
@@ -750,7 +751,7 @@ export default class Gantt {
? date_utils.format(date, upper_text, this.options.language)
: upper_text(date, last_date, this.options.language),
lower_text:
- typeof upper_text === 'string'
+ typeof lower_text === 'string'
? date_utils.format(date, lower_text, this.options.language)
: lower_text(date, last_date, this.options.language),
upper_x: base_pos.x + x_pos[`${this.config.view_mode.name}_upper`],