java获取当月第二周,java获取当月第一天

发布时间:2022-11-24

本文目录一览:

  1. Java如何得到指定时间段中的第几周第几天的日期?
  2. Java中怎么获取一个月的第几周的所有日期啊?比如说我要获取一月的第一周的所有天数的日期是多少要怎么写
  3. java 根据输入的年月计算出这个月有几周
  4. Java根据日期得到当月第几周
  5. Java日期操作问题,传入一个日期返回这个日期所在月的第几周,具体要求如下:

Java如何得到指定时间段中的第几周第几天的日期?

第二周的周一??不完整周也算第一周?? 我理解你的问题是第二个周一的日期是多少??

import java.util.Calendar;
public class Test {
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        Calendar c_begin = Calendar.getInstance();
        Calendar c_end = Calendar.getInstance();
        c_begin.set(2010, 3, 1); // Calendar的月从0-11,所以4月是3.
        c_end.set(2010, 4, 20); // Calendar的月从0-11,所以5月是4.
        int count = 0;
        while (c_begin.before(c_end)) {
            // System.out.println(new java.sql.Date(c_begin.getTime().getTime()));
            if (c_begin.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {
                count++;
            }
            if (count == 2) {
                System.out.println(c_begin.get(Calendar.YEAR) + "年" + (c_begin.get(Calendar.MONTH) + 1) + "月" + c_begin.get(Calendar.DATE) + "日");
                break;
            }
            c_begin.add(Calendar.DAY_OF_YEAR, 1);
        }
    }
}

Java中怎么获取一个月的第几周的所有日期啊?比如说我要获取一月的第一周的所有天数的日期是多少要怎么写

第几周是该月的第几周吗? 还是该年的第几周? 下面的程序包含了2种情况, 请自行选择.

package com.calender;
import java.util.Calendar;
import java.util.Locale;
/**
 * 输出某周的日期.
 * 演示Calendar的用法.
 * Calendar的使用一般分2步,
 * 1.确定某天, 调用set函数
 * 2.可以取出该天的任意信息, 通过get函数.
 * @author: zhuby
 * @create date:2011-1-17
 */
public class WeekCalendar {
    /**
     * 周计数,为全年中的周计数
     * @param year
     * @param weekCount
     * @return
     */
    public int[] getWeekDateByWeekInYear(int year, int weekCount) {
        Calendar cal = Calendar.getInstance(Locale.CHINA);
        // 设置calendar的日期,此处可以确定某一天
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.WEEK_OF_YEAR, weekCount);
        // 获取该天的信息(理论而言,通过改变get函数的参数,可以获取该天的任意信息)
        int day = cal.get(Calendar.DAY_OF_YEAR);
        int[] days = new int[7];
        for (int i = 0; i < 7; i++) {
            days[i] = cal.get(Calendar.DAY_OF_MONTH);
            // System.out.print((cal.get(Calendar.MONTH)+1)+"月"+cal.get(Calendar.DAY_OF_MONTH)+"日 ");
            day++;
            cal.set(Calendar.DAY_OF_YEAR, day);
        }
        return days;
    }
    /**
     * 周计数为月中的周计数
     * @param year
     * @param month
     * @param weekCount
     * @return
     */
    public int[] getWeekDateByWeekInMonth(int year, int month, int weekCount) {
        Calendar cal = Calendar.getInstance(Locale.CHINA);
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month - 1);
        cal.set(Calendar.WEEK_OF_MONTH, weekCount);
        int day = cal.get(Calendar.DAY_OF_YEAR);
        int[] days = new int[7];
        for (int i = 0; i < 7; i++) {
            days[i] = cal.get(Calendar.DAY_OF_MONTH);
            // System.out.print((cal.get(Calendar.MONTH)+1)+"月"+cal.get(Calendar.DAY_OF_MONTH)+"日 ");
            day++;
            cal.set(Calendar.DAY_OF_YEAR, day);
        }
        return days;
    }
    public static void main(String[] args) {
        WeekCalendar wc = new WeekCalendar();
        for (int i = 0; i < 7; i++) {
            System.out.print(wc.getWeekDateByWeekInYear(2011, 7)[i] + " ");
        }
        System.out.println();
        for (int i = 0; i < 7; i++) {
            System.out.print(wc.getWeekDateByWeekInMonth(2011, 4, 2)[i] + " ");
        }
    }
}

java 根据输入的年月计算出这个月有几周

import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.ParsePosition;
import java.util.GregorianCalendar;
/**
 * pTitle: 
 *
 * pDescription: 
 *
 * pCopyright: Copyright (c) 2005
 *
 * pCompany: 
 *
 * @author not attributable
 * @version 1.0
 */
public class Untitled1 {
    public Untitled1() {
    }
    /**
     * 判断是否润年
     *
     * @param ddate
     * @return
     */
    public static boolean isLeapYear(String ddate) {
        /**
         * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
         * 3.能被4整除同时能被100整除则不是闰年
         */
        Date d = strToDate(ddate);
        GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
        gc.setTime(d);
        int year = gc.get(Calendar.YEAR);
        if ((year % 400) == 0)
            return true;
        else if ((year % 4) == 0) {
            if ((year % 100) == 0)
                return false;
            else
                return true;
        } else
            return false;
    }
    /**
     * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
     */
    public static String getNextDay(String nowdate, String delay) {
        try {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String mdate = "";
            Date d = strToDate(nowdate);
            long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
            d.setTime(myTime * 1000);
            mdate = format.format(d);
            return mdate;
        } catch (Exception e) {
            return "";
        }
    }
    /**
     * 将短时间格式字符串转换为时间 yyyy-MM-dd
     *
     * @param strDate
     * @return
     */
    public static Date strToDate(String strDate) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        ParsePosition pos = new ParsePosition(0);
        Date strtodate = formatter.parse(strDate, pos);
        return strtodate;
    }
    /**
     * 获取一个月的最后一天
     *
     * @param dat
     * @return
     */
    public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
        String str = dat.substring(0, 8);
        String month = dat.substring(5, 7);
        int mon = Integer.parseInt(month);
        if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {
            str += "31";
        } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
            str += "30";
        } else {
            if (isLeapYear(dat)) {
                str += "29";
            } else {
                str += "28";
            }
        }
        return str;
    }
    /**
     * 根据一个日期,返回是星期几的字符串
     *
     * @param sdate
     * @return
     */
    public static String getWeek(String sdate) {
        // 再转换为时间
        Date date = strToDate(sdate);
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        // int hour=c.get(Calendar.DAY_OF_WEEK);
        // hour中存的就是星期几了,其范围 1~7
        // 1=星期日 7=星期六,其他类推
        return new SimpleDateFormat("EEEE").format(c.getTime());
    }
    public static String getWeekStr(String sdate) {
        String str = "";
        str = getWeek(sdate);
        if ("1".equals(str)) {
            str = "星期日";
        } else if ("2".equals(str)) {
            str = "星期一";
        } else if ("3".equals(str)) {
            str = "星期二";
        } else if ("4".equals(str)) {
            str = "星期三";
        } else if ("5".equals(str)) {
            str = "星期四";
        } else if ("6".equals(str)) {
            str = "星期五";
        } else if ("7".equals(str)) {
            str = "星期六";
        }
        return str;
    }
    public static String getNowMonth(String sdate) {
        // 取该时间所在月的一号
        // sdate = sdate.substring(0, 8) + "01";
        sdate = sdate + "-01";
        // 得到这个月的1号是星期几
        Calendar c = Calendar.getInstance();
        Date date = strToDate(sdate);
        c.setTime(date);
        int u = c.get(Calendar.DAY_OF_WEEK);
        String newday = getNextDay(sdate, (1 - u) + "");
        return newday;
    }
    public static String getMonthDate(String sdate) {
        // 取该时间所在月的一号
        // sdate = sdate.substring(0, 8) + "01";
        sdate = sdate + "-01";
        // 得到这个月的1号是星期几
        Calendar c = Calendar.getInstance();
        Date date = strToDate(sdate);
        c.setTime(date);
        int u = c.get(Calendar.DAY_OF_WEEK);
        // for(int i=0;i)
        String edate = getEndDateOfMonth(sdate);
        String newday;
        int i = 0, j = 1;
        System.out.println();
        do {
            newday = getNextDay(sdate, "" + i++);
            String week = getWeek(newday);
            if (!week.equals("星期日") && !week.equals("星期六")) {
                System.out.println("第" + (j) + "周");
                System.out.print(newday);
                System.out.print(week);
                System.out.println();
            }
            if (week.equals("星期六")) j++;
        } while (!newday.equals(edate));
        return newday;
    }
    static public void main(String[] args) {
        getMonthDate("2011-05");
    }
}

Java根据日期得到当月第几周

Calendar c_begin = Calendar.getInstance();
Calendar c_end = Calendar.getInstance();
c_begin.set(2010, 3, 1); // Calendar的月从0-11,所以4月是3.
c_end.set(2010, 4, 20); // Calendar的月从0-11,所以5月是4.
int count = 0;
while (c_begin.before(c_end)) {
    // System.out.println(new java.sql.Date(c_begin.getTime().getTime()));
    if (c_begin.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {
        count++;
    }
    if (count == 2) {
        System.out.println(c_begin.get(Calendar.YEAR) + "年" + (c_begin.get(Calendar.MONTH) + 1) + "月" + c_begin.get(Calendar.DATE) + "日");
        break;
    }
    c_begin.add(Calendar.DAY_OF_YEAR, 1);
}

可以这样试试,应该能理解吧。如有不懂再问我

Java日期操作问题,传入一个日期返回这个日期所在月的第几周,具体要求如下:

import java.util.Calendar;
import java.util.Date;
public class test {
    public static String getWeekOfMonth(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        // 外国月份为0-11所以月份加一
        int month = cal.get(Calendar.MONTH) + 1;
        int mweek = cal.get(Calendar.WEEK_OF_MONTH);
        String d = month + "第" + mweek + "周";
        return d;
    }
    public static void main(String[] args) {
        System.out.println(getWeekOfMonth(new Date()));
    }
}