忙起工作没完没了,还是继续回到正题吧,本节实现一个简单的日历算法,相信你看过之后会发现原来如此简单。
很不幸的是在黑莓中获取月的最大天数没有现成的,我们必须换个思路:
OK,或许现在你输出下面这个就不难了吧
先设想一下:一个日历应该是这样的 最上面是星期头,{周日/周一/周二/周三/周四/周五/周六},下面的日历的具体天,当然该如何摆放其实只要知道两个条件就可以了 第一 当前月的第一天是星期几 第二 当前月总有多少天 剩下的事情就是挨个画出来了,想怎么画就怎么画,不区分语言和平台。下来看看java平台的做法:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
/**
* Method Description:
* 返回当前日期月的最大天数
* @author : laoshulin@gmail.com
* @createTime: Jan 18, 2011 9:09:49 AM
* @return
*/
public static int getMaxDays() {
Calendar cdate = Calendar.getInstance();
return cdate.getActualMaximum(Calendar.DATE);
}
/**
* Method Description:
* 返回当前日期月第一天的星期
* @author : laoshulin@gmail.com
* @createTime: Jan 18, 2011 9:05:25 AM
* @return
*/
public static String getWeek() {
Calendar cdate = Calendar.getInstance();
cdate.set(Calendar.DATE, 1 );
String[] weekDays = { " 星期日 " , " 星期一 " , " 星期二 " , " 星期三 " , " 星期四 " , " 星期五 " , " 星期六 " };
return weekDays[cdate.get(Calendar.DAY_OF_WEEK) - 1 ];
}
* Method Description:
* 返回当前日期月的最大天数
* @author : laoshulin@gmail.com
* @createTime: Jan 18, 2011 9:09:49 AM
* @return
*/
public static int getMaxDays() {
Calendar cdate = Calendar.getInstance();
return cdate.getActualMaximum(Calendar.DATE);
}
/**
* Method Description:
* 返回当前日期月第一天的星期
* @author : laoshulin@gmail.com
* @createTime: Jan 18, 2011 9:05:25 AM
* @return
*/
public static String getWeek() {
Calendar cdate = Calendar.getInstance();
cdate.set(Calendar.DATE, 1 );
String[] weekDays = { " 星期日 " , " 星期一 " , " 星期二 " , " 星期三 " , " 星期四 " , " 星期五 " , " 星期六 " };
return weekDays[cdate.get(Calendar.DAY_OF_WEEK) - 1 ];
}
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
cdate.set(Calendar.MONTH,cdate.get(Calendar.MONTH)
+
1
);
cdate.set(Calendar.DAY_OF_MONTH, 1 );
cdate.set(Calendar.DATE,cdate.get(Calendar.DATE) - 1 );
System.out.println( " 当月天数: " + cdate.get(Calendar.DAY_OF_MONTH));
cdate.set(Calendar.DAY_OF_MONTH, 1 );
cdate.set(Calendar.DATE,cdate.get(Calendar.DATE) - 1 );
System.out.println( " 当月天数: " + cdate.get(Calendar.DAY_OF_MONTH));
这个是作为例子的java控制台输出,如果作为黑莓模拟器是不行的,后面我会继续黑莓的相关做法,当然如果你要求好看点的话要自己实现UI控件来绘制。