get_bottom_labels function

List<String> get_bottom_labels({
  1. required double max_x,
  2. required TimeFrame timeframe,
})

Implementation

List<String> get_bottom_labels({
  required double max_x,
  required TimeFrame timeframe,
}) {
  DateTime date_now = DateTime.now();
  List<String> bottom_labels = [];

  for (var i = 0; i < max_x; i++) {
    DateTime current_date = date_now;
    String current_label = "";

    switch (timeframe) {
      case TimeFrame.Day:
        current_date = DateTime(
          date_now.year,
          date_now.month,
          date_now.day,
          date_now.hour - i,
        );
        current_label = DateFormat("h a").format(current_date);
        break;
      case TimeFrame.Week:
        current_date = DateTime(
          date_now.year,
          date_now.month,
          date_now.day - i,
        );
        current_label = DateFormat("d").format(current_date);
        break;
      case TimeFrame.Month:
        current_date = DateTime(
          date_now.year,
          date_now.month,
          date_now.day - i,
        );
        current_label = DateFormat("d").format(current_date);
        break;
      case TimeFrame.Year:
        current_date = DateTime(
          date_now.year,
          date_now.month - i,
        );
        current_label = DateFormat("MMM").format(current_date);
        break;
      case TimeFrame.Beginning:
        current_date = DateTime(
          date_now.year - i,
        );
        current_label = DateFormat("y").format(current_date);
        break;
    }

    bottom_labels.add(current_label);
  }
  return List.from(bottom_labels.reversed);
}