javacalendar求java中Calendar类的用法例子(并附每条注释)

javacalendar  时间:2021-06-26  阅读:()

做一个JAVA日历

你使用java.util.Calendar吧,可以加减年、月、天等操作,你要连续的几个月,那只要连续加一个月,得到一个新的date。

然后用你写好的输出数组的方法运算就可以了。

这只是思路,还是需要你调整一下的。

关于java.util.Calendar的一点儿疑惑,请高手作答。

Calendar.THURSDAY Calendar.DAY_OF_MONTH Calendar.JUNE 这三个确实都是5,调用返回的结果也肯定跟直接调用cal.get(5)一样,这是因为: public int get(int field) 返回给定日历字段的值。

field - 给定的日历字段。

Calendar.THURSDAY和Calendar.JUNE这两个根本不是字段,是字段的值,换句话说, Calendar.THURSDAY的说明是指示 Thursday 的 DAY_OF_WEEK 字段值。

也就是你调用cal.get(Calendar.DAY_OF_WEEK)可能会返回这个值。

总之,调用cal.get(Calendar.THURSDAY)和cal.get(Calendar.JUNE)是没有意义的,返回的都是cal.get(Calendar.DAY_OF_MONTH) 可以把Calendar看做是一个日期,你只会说我想获得这个日期是哪年、哪月、哪日、周几等。

比如你问Calendar是周几,它会回答你一个数值,而java是这么设计的,从1-7代表周日到周一,因为这个方法返回的是int类型。

而5代表周四,所以就定义了一个常量THURSDAY=5. 实际你传入Calendar.THURSDAY从某种意义上讲是不合法的,只不过他的值恰巧与Calendar.DAY_OF_WEEK相同而已。

java calendar 时间

1、计算某一月份的最大天数 Calendar?time=Calendar.getInstance();? time.clear();? time.set(Calendar.YEAR,year);? time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0???????????? intday=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间。

2、Calendar和Date的转化 (1) Calendar转化为Date Calendar?cal=Calendar.getInstance(); Date?date=cal.getTime();(2) Date转化为Calendar Date?date=new?Date(); Calendar?cal=Calendar.getInstance(); cal.setTime(date);3、格式化输出日期时间 Date?date=new?Date(); SimpleDateFormat?df=new?SimpleDateFormat("yyyy-MM-dd?hh:mm:ss"); System.out.println(df.format(date));4、计算一年中的第几星期 (1)计算某一天是一年中的第几星期 Calendar?cal=Calendar.getInstance(); cal.set(Calendar.YEAR,?2006); cal.set(Calendar.MONTH,?8); cal.set(Calendar.DAY_OF_MONTH,?3); int?weekno=cal.get(Calendar.WEEK_OF_YEAR);(2)计算一年中的第几星期是几号 SimpleDateFormat?df=new?SimpleDateFormat("yyyy-MM-dd"); Calendar?cal=Calendar.getInstance(); cal.set(Calendar.YEAR,?2006); cal.set(Calendar.WEEK_OF_YEAR,?1); cal.set(Calendar.DAY_OF_WEEK,?Calendar.MONDAY); System.out.println(df.format(cal.getTime()));

求java中Calendar类的用法例子(并附每条注释)

Calendar类(理解) Calendar类是采用手工的方式取得日期,可以通过此类精确到毫秒,此类的定义如下: public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable 这个类本身是一个抽象类,抽象类要想实例化肯定使用子类:GregorianCalendar .lxh.api.datedemo; import java.util.Calendar; import java.util.GregorianCalendar; public class CalendarDemo { public static void main(String[] args) { Calendar calendar = new GregorianCalendar(); System.out.println("YEAR: " + calendar.get(Calendar.YEAR)); System.out.println("MONTH: " + (calendar.get(Calendar.MONTH) + 1)); System.out.println("DATE: " + calendar.get(Calendar.DATE)); System.out .println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY)); System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE)); System.out.println("SECOND: " + calendar.get(Calendar.SECOND)); System.out .println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND)); } } 但是现在有一个问题,如果每次取时间都按照这种方式取的话,那么得累死,那么能不能设计一个类,可以通过此 类直接取得时间呢,例如:现在给出了如下的一个接口: .lxh.api.datedemo; public interface DateTime { /** *取得日期 * @return 日期的字符串,例如:2009-12-22 */ public String getDate() ; /** *取得日期时间 * @return 日期时间的字符串,例如:2009-12-22 11:06:23.345 */ public String getDateTime() ; /** *取得时间戳 * @return 返回时间戳的字符串,例如:20091222110623345 */ public String getTimeStamp() ; } 前面需要补0的问题需要注意,例如:01。

.lxh.api.datedemo; import java.util.Calendar; import java.util.GregorianCalendar; public class DateTimeImpl implements DateTime { private Calendar calendar; public DateTimeImpl() { this.calendar = new GregorianCalendar(); } public String getDate() { StringBuffer buf = new StringBuffer(); buf.append(calendar.get(Calendar.YEAR)).append("-"); buf.append(this.addZero((calendar.get(Calendar.MONTH) + 1), 2)).append("-"); buf.append(this.addZero(calendar.get(Calendar.DATE), 2)); return buf.toString(); } public String getDateTime() { StringBuffer buf = new StringBuffer(); buf.append(calendar.get(Calendar.YEAR)).append("-"); buf.append(this.addZero((calendar.get(Calendar.MONTH) + 1), 2)).append("-"); buf.append(this.addZero(calendar.get(Calendar.DATE), 2)).append(" "); buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)).append(":") ; buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)).append(":") ; buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)).append(".") ; buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)) ; return buf.toString(); } @Override public String getTimeStamp() { StringBuffer buf = new StringBuffer(); buf.append(calendar.get(Calendar.YEAR)); buf.append(this.addZero((calendar.get(Calendar.MONTH) + 1), 2)); buf.append(this.addZero(calendar.get(Calendar.DATE), 2)); buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2)); buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2)) ; buf.append(this.addZero(calendar.get(Calendar.SECOND), 2)) ; buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3)) ; return buf.toString(); } private String addZero(int num, int len) { StringBuffer buf = new StringBuffer(); buf.append(num); while (buf.length() < len) { buf.insert(0, 0); } return buf.toString(); } }

VPSMS:53元/月KVM-512MB/15G SSD/1TB/洛杉矶CN2 GIA

VPSMS最近在做两周年活动,加上双十一也不久了,商家针对美国洛杉矶CN2 GIA线路VPS主机提供月付6.8折,季付6.2折优惠码,同时活动期间充值800元送150元。这是一家由港人和国人合资开办的VPS主机商,提供基于KVM架构的VPS主机,美国洛杉矶安畅的机器,线路方面电信联通CN2 GIA,移动直连,国内访问速度不错。下面分享几款VPS主机配置信息。CPU:1core内存:512MB硬盘:...

RAKsmart推出7.59美元/月,云服务器产品Cloud Server,KVM架构1核1G内存40G硬盘1M带宽基础配置

近期RAKsmart上线云服务器Cloud Server产品,KVM架构1核1G内存40G硬盘1M带宽基础配置7.59美元/月!RAKsmart云服务器Cloud Server位于美国硅谷机房,下单可选DIY各项配置,VPC网络/经典网络,大陆优化/精品网线路,1-1000Mbps带宽,支持Linux或者Windows操作系统,提供Snap和Backup。RAKsmart机房是一家成立于2012年...

ReliableSite:美国服务器租用,洛杉矶/纽约/迈阿密等机房;E3-1240V6/64GB/1TSSD,$95/月

reliablesite怎么样?reliablesite是一家于2006年成立的老牌美国主机商,主要提供独服,数据中心有迈阿密、纽约、洛杉矶等,均免费提供20Gbps DDoS防护,150TB月流量,1Gbps带宽。月付19美金可升级为10Gbps带宽。洛杉矶/纽约/迈阿密等机房,E3-1240V6/64GB内存/1TB SSD硬盘/DDOS/150TB流量/1Gbps带宽/DDOS,$95/月,...

javacalendar为你推荐
存储区域网络nas、das、san 三种网络环境的区分renderpartialreact里面使隐藏的组件显示出来是addclass还是render代发邮件什么是商务邮件代发?5e5e5e如何更改bootstrap navbar的颜色 03 Topics 03 Ruby Chinacomexception5种常见的Exception!za是哪个国家的ci是在哪个国家产生的?哪个国家开始流行的动画分镜头脚本动画分镜头台本的作用?yui3求Yui的详细资料flash序列号急求flash序列号backupexecBackup Exec 2014怎么备份Exchange
阿云浏览器 阿里云邮箱登陆首页 流媒体服务器 轻博客 godaddy支付宝 国外空间 gg广告 圣诞促销 nerds 国外代理服务器软件 网通服务器托管 太原联通测速 注册阿里云邮箱 卡巴斯基试用版下载 睿云 北京主机托管 cc加速器 傲盾代理 德国代理 blaze 更多