Date类的getDay()和getDate()方法


                                      

                                                                          图片是后来添加上去的
 

 

 

 

遇到的问题:

      今天,搞了一个属于自己的日历,碰到一个比较纠结的问题,就是那个日期(指的是“日”不是“年月”)面板上的日期和星期面板上的星期怎么也不对应,查看其他的月份,结果是日期面板上的日期是静态的,比方说每个月的第一天不管怎样都和星期一对应,依次往后排是第二天,第三天……

 

日期面板是这样规定日期的:

      我的日历的日期每一天都是在一个按钮上setText标识的,这样的话,绘制按钮时,就必须知道每个月的第一天是星期几,从而根据他来开始setText按钮,比方说第一天是星期三,那么就应该从把第三个按钮setText为“1”,第四个按钮setText为“2”依次类推,那么第一和第二个按钮就应该setText为“”(空)。

 

      系统提供了一个类Date其中有两个方法:getDay()和getDate()(这两个方法现在都已经过时,但是还能用只是在那个方法调用时会在方法体上有一个类似于删除意思的横线,表明已经过时),其中getDate()是返回返一个日期对象

比方说Date day=new Date(2010,07,02)中的“日”在这里就会返回一个2,代表是这个年月的第二天。那么getDay()方法就是返回日期对象所对应的星期几,还以上面的day为例,当调用day.getDay()时就会返回一个“1”,代表2010年7月2日是星期一(本来应是再加上1900表示3910的,在这里就权且是2010吧),返回值 (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday) 表示一周中的某一天。

问题分析:

      我的问题就是错误的调用了getDate()方法企图用firstday.getDate()(firstday是一个日期对象,表示每个月的第一天)得到每个月的第一天是星期几的值,可想而知得到的值都是'1",这样在setText第一天的按钮时就总是和星期一对应啦,当然改成firstday.getDay()就没有问题啦

一点感触:

      难怪那两个方法都被标记为过时,因为很容易就会让人混淆,而修改后的方法好像是注意到了这一点,就比较容易区分啦

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的Date提供了一些常用的方法来处理日期和时间。下面是一些常见的Date方法: 1. `Date()`:无参构造方法,创建一个表示当前时间的Date对象。 2. `Date(long date)`:根据给定的毫秒数创建一个Date对象,表示从1970年1月1日00:00:00 GMT开始的指定时间。 3. `after(Date when)`:判断当前Date对象是否在参数Date对象之后。 4. `before(Date when)`:判断当前Date对象是否在参数Date对象之前。 5. `getTime()`:返回自1970年1月1日00:00:00 GMT以来的毫秒数。 6. `toString()`:将Date对象转换为字符串表示形式。 7. `equals(Object obj)`:判断当前Date对象是否与参数对象相等。 8. `compareTo(Date anotherDate)`:比较当前Date对象与参数Date对象的顺序。 9. `setTime(long time)`:设置Date对象表示的时间。 10. `getYear()`:返回当前Date对象表示的年份(从1900年开始计算,所以需要加上1900)。 11. `getMonth()`:返回当前Date对象表示的月份(从0开始,0表示一月)。 12. `getDate()`:返回当前Date对象表示的日期(月份中的某一天)。 13. `getDay()`:返回当前Date对象表示的星期几(0表示星期日,1表示星期一,以此推)。 14. `getHours()`:返回当前Date对象表示的小时数。 15. `getMinutes()`:返回当前Date对象表示的分钟数。 16. `getSeconds()`:返回当前Date对象表示的秒数。 这些方法可以帮助你在Java中处理日期和时间相关的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值