Java基础Calendar类SimpleDateFormat及其应用(求出某一年的某天是星期几,而且求出这一天是这一年的第几天)

我们通过Calendar可以知道关于日期的相关函数。相关属性有YEAR,MONTH,DAY_OF_MONTH,DAY_OF_YEAR等,我们可以从其直接获得属性值,也可以自己来获得属性值。比如我们要知道哪一个年的2月有多少天。我们要用到add方法以及DAY_OF_MONTH属性具体代码如下

import java.util.*;
public class dd
{
	public static void main(String args[])throws Exception{
	 Scanner h=new Scanner(System.in);
	 int year=0;
	 System.out.print("请输入年份:");
	  year=h.nextInt();              //把输入的值传给year
	Calendar u=Calendar.getInstance();  //创建Calendar类
	u.set(year,2,1);         //代表3月1日
	u.add(Calendar.DAY_OF_MONTH,-1);     //3月1日的日子减了一天
	System.out.println("这一年的二月共有"+u.get(Calendar.DAY_OF_MONTH)+"天");//使用get方法来取得天数
	
	}
}
接下来SimpleFormat通常用来格式化日期格式,如yyyy-mm-dd-hh等。下面通过一个例子来阐

述关于Calendar以及SimpleFormat的具体应用。比如说要求出某一年的某天是星期几,而且求出这一天是这一年的第几天。编码如下:

package com.itheima;
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Test9
{
	public static void main(String args[])throws Exception{
	String str="2014-1-6";
	String s[]=str.split("-"); //把日期按照”_“来进行拆分
	 int y=Integer.parseInt(s[0]);
	 int m=Integer.parseInt(s[1]);
	 int d=Integer.parseInt(s[2]);//拆分后的数组元素分别赋值
	 boolean nunnian=false;
	 if(m<3){            //由于存在闰年的原因等,这里要做相应的调整。
	 m+=12;
	 --y;
	 }
   int w=  (1+d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;  //公式的原理这里不深究了。
	   char h='0';
		switch(w){
	case 0:{
		h='天';
		break;
	}
	case 1:{
		h='一';
		break;
	}
	case 2:{
		h='二';
		break;
	}
	case 3:{
		h='三';
		break;
	}
	case 4:{
		h='四';
		break;
	}
	case 5:{
		h='五';
		break;
	}
	case 6:{
		h='六';
		break;
	}

	}
	System.out.println("这一天是星期"+h);
 SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
 Date k=f.parse(str); //使得日期格式化并且赋值给Date
Calendar c=Calendar.getInstance();
c.setTime(k);        //set方法
  System.out.println("这天是这年的第"+c.get(Calendar.DAY_OF_YEAR)+"天");//get方法
	}
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值