如何以编程方式为日期间隔图生成文本标签数组

时间:2014-08-07 02:15:17

标签: java android arrays charts

我试图实施图表来显示一些基于区间的数据。

对于orizo​​ntal轴标签,我需要一个包含所有文本标签的数组。

问题在于:

我必须根据传递的GregorianCalendar startDate, GregorianCalendar endDate以编程方式生成此数组(并且几个月没有相同的天数)

例如假设我需要一张从 7月7日 8月5日的图表,如图所示

enter image description here

所需的标签数组必须

String labels[]={"lug 7","","","","","","","","lug 14","","","","","","","lug 21","","","","","","","lug 28","","","","ago 4",""}

欢迎任何帮助

1 个答案:

答案 0 :(得分:1)

一个简单的方法来确定一个月中的天数,无论闰年等,只要您的start / endDate有足够的信息,getMaximum()就像这样在这个例子中......

public static void main(String...args) {
    // get a calendar instance instantiated with today's date 
    // this would be your start or end date in your program
    GregorianCalendar gc = new GregorianCalendar();     
    System.out.println(gc.getActualMaximum(Calendar.DAY_OF_MONTH));     
}
  

输出:31

然后,您将根据您的要求和简单的数学检查来处理填充数组。

修改

回应评论,这是一个使用评论中的开始和结束日期的简单示例。

public static void main(String...args)  {

        GregorianCalendar startDate = 
            new GregorianCalendar(2014, GregorianCalendar.JUNE, 26);
        GregorianCalendar endDate = 
            new GregorianCalendar(2014, GregorianCalendar.OCTOBER, 9);

        while (startDate.get(Calendar.MONTH) <= endDate.get(Calendar.MONTH)) {
            System.out.println(startDate.getActualMaximum(Calendar.DAY_OF_MONTH));  
            startDate.add(Calendar.MONTH, 1);
        }
    }
  

输出:

30
31
31
30
31

你显然还有更多工作要处理任何范围,但这表明你可以使用我的建议来完成。我不太确定你对阵列进行硬编码是什么意思。如果你建议你每月使用一个数组,你可以但你仍然需要提供闰年检查。