java获取当月天数,指定年月的天数,指定日期获取对应星期

package com;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author Gerrard
 */
public class TestGetWeek {

	public static void main(String[] args) {

		int currentMaxDays = getCurrentMonthDay();
		
		int maxDaysByDate = getDaysByYearMonth(2012, 11);
		
		String week = getDayOfWeekByDate("2012-12-25");
		
		System.out.println("本月天数:" + currentMaxDays);
		System.out.println("2012年11月天数:" + maxDaysByDate);
		System.out.println("2012-12-25是:" + week);
	}
	
	/**
	 * 获取当月的 天数
	 * */
	public static int getCurrentMonthDay() {
		
		Calendar a = Calendar.getInstance();
		a.set(Calendar.DATE, 1);
		a.roll(Calendar.DATE, -1);
		int maxDate = a.get(Calendar.DATE);
		return maxDate;
	}

	/**
	 * 根据年 月 获取对应的月份 天数
	 * */
	public static int getDaysByYearMonth(int year, int month) {
		
		Calendar a = Calendar.getInstance();
		a.set(Calendar.YEAR, year);
		a.set(Calendar.MONTH, month - 1);
		a.set(Calendar.DATE, 1);
		a.roll(Calendar.DATE, -1);
		int maxDate = a.get(Calendar.DATE);
		return maxDate;
	}
	
	/**
	 * 根据日期 找到对应日期的 星期
	 */
	public static String getDayOfWeekByDate(String date) {
		String dayOfweek = "-1";
		try {
			SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
			Date myDate = myFormatter.parse(date);
	      	SimpleDateFormat formatter = new SimpleDateFormat("E");
	      	String str = formatter.format(myDate);
	      	dayOfweek = str;
	      	
		} catch (Exception e) {
			System.out.println("错误!");
		}
		return dayOfweek;
	}
}

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您解答。首先是将天数转成月,这个需要明确一个月有多少天,然后进行计算。一般情况下,一个月有 30 天或 31 天,2 月有 28 天或 29 天。以下是一个简单的 Java 代码示例: ```java int days = 90; // 假设有 90 天 int month = days / 30; // 每个月有 30 天 int remainder = days % 30; // 取余数 if (remainder > 0) { month++; // 如果有余数,月份加 1 } System.out.println("转换后的月份为:" + month); ``` 获取当月天数可以使用 Calendar 类,代码如下: ```java Calendar calendar = Calendar.getInstance(); int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println("当月天数为:" + days); ``` 指定年月天数可以使用以下代码: ```java int year = 2021; int month = 7; Calendar calendar = Calendar.getInstance(); calendar.set(year, month - 1, 1); int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(year + "年" + month + "月天数为:" + days); ``` 最后是指定日期获取对应星期,可以使用 SimpleDateFormat 类获取日期对应星期,代码如下: ```java String dateString = "2021-07-20"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = format.parse(dateString); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); String[] dayOfWeekNames = {"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; System.out.println(dateString + " 是 " + dayOfWeekNames[dayOfWeek]); ``` 以上就是对您问题的解答,希望能够帮到您。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值