java中,现在知道总天数 days, 如何利用 Calendar 类,得到这些天数是多少年years

java中,现在知道总天数 days, 如何利用 Calendar 类,得到这些天数是多少年years,第1张

如果是以当前时间为起点,得到自然年,可以这样:

Calendar cal = CalendargetInstance() ;

caladd(CalendarDAY_OF_YEAR, 365);

int myYears = calgetTime()getYear()- (new Date())getYear();

给个类似的代码例子看看,自己修改下里面的几行代码就可以了

import javatextParseException;

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilGregorianCalendar;

/得到当前月的前几个月的方法/

public class Timecs {

private static String[] hzYearMonth = new String[6];// 汉字格式日期

private static String[] zcYc = new String[6];//

private static String[] zcYd = new String[6];//

public static void getYearMonth() {

int leng = 0;

/ 这里的i初始值,你可以根据自己的需要来改变,也可以变成变量 /

for (int i = -6; i < 0; i++) {

Calendar calendar = CalendargetInstance();

/

i是正数就是后i月,i是负数就是前i月,i是几就加几月,这里的例子是前6个月

/

calendaradd(CalendarDATE, i); // 得到某一天

calendaradd(CalendarMONTH, i); // 得到某一个月

int year = calendarget(CalendarYEAR);

int month = calendarget(CalendarMONTH) + 1;// 这里月要加1

/ 下面的是根据我自己需要用到的日期格式加的一些小处理 /

String dateTime = year + "-" + month;

dateTime += "-" + getDayCount(dateTime);

hzYearMonth[leng] = year + "年" + month + "月";

zcYc[leng] = year + "-" + month + "-1";

zcYd[leng] = dateTime;

Systemoutprintln(hzYearMonth[leng] + "--" + zcYc[leng]

+ "--" + zcYd[leng] + " 当月天数" + getDayCount(dateTime));

leng++;

}

}

/ 给一个yyyy-MM(2012-01)日期格式,判断出所传月一共多少天 /

public static int getDayCount(String dateTime) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");

/

GregorianCalendar 是 Calendar 的一个具体子类, 提供了世界上大多数国家/地区使用的标准日历系统。

/

Calendar calendar = new GregorianCalendar();

try {

/ 使用给定的 Date 设置此 Calendar 的时间 /

calendarsetTime(sdfparse(dateTime));

} catch (ParseException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

/ 返回此日历字段可能具有的最大值。DAY_OF_MONTH 用于指示一个月的某天 /

int day = calendargetActualMaximum(CalendarDAY_OF_MONTH);

return day;

}

public static void main(String[] args) throws ParseException {

getYearMonth();

}

}

function getLastMaxDay(this_date){

var mon=(0==$trim(this_date)substring(4,5))$trim(this_date)substring(5,6):$trim(this_date)substring(4,6);

var day="";

var year_mon="";

if(mon>10){

mon=mon-2;

}else if(mon==10){

mon=mon-2;

}else{

mon=mon-2;

}

var year=$trim(this_date)substring(0,4);

var dt = new Date(year,mon,1);

//var dt = new Date();

dtsetDate(1);

dtsetMonth(dtgetMonth()+1);

cdt = new Date(dtgetTime()-1000606024);

return cdtgetDate();

}

//去除最后的逗号

function toIdsForIn(id){

var arr=(id+"")split(',');

return arrjoin("','");

}

>

思路:首先是获取该月的实际天数,然后从1号遍历直至该月最后一天,利用Calendar类找出该日是一周中的第几天,

(1)若该日是周日,则视为一周结束,并用该日期减去6找到该周的开始日期,若相减结果小于等于1,则说明该周起始日期应该是本月1号。

(1)若该日不是周日,且是该月最后一天,则应该在上面计算的基础上再加一周,视月末为该周的结束日,该周起始日期应为改日期减去改日

在一周中的位置加2,例如:2013-09-30号是周一,则视为9月份中的第六周,开始日期是30-2+2

提示:Calendar 类中视周日为一周的开始,值是1

示例代码:

[java] view plain copy

public static void printfWeeks(String date) throws Exception {

// String date = "2013-09";

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");

Date date1 = dateFormatparse(date);

Calendar calendar = new GregorianCalendar();

calendarsetTime(date1);

int days = calendargetActualMaximum(CalendarDAY_OF_MONTH);

Systemoutprintln("days:" + days);

int count = 0;

for (int i = 1; i <= days; i++) {

DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");

Date date2 = dateFormat1parse(date + "-" + i);

calendarclear();

calendarsetTime(date2);

int k = new Integer(calendarget(CalendarDAY_OF_WEEK));

if (k == 1) {// 若当天是周日

count++;

Systemoutprintln("-----------------------------------");

Systemoutprintln("第" + count + "周");

if (i - 6 <= 1) {

Systemoutprintln("本周开始日期:" + date + "-" + 1);

} else {

Systemoutprintln("本周开始日期:" + date + "-" + (i - 6));

}

Systemoutprintln("本周结束日期:" + date + "-" + i);

Systemoutprintln("-----------------------------------");

}

if (k != 1 && i == days) {// 若是本月最好一天,且不是周日

count++;

Systemoutprintln("-----------------------------------");

Systemoutprintln("第" + count + "周");

Systemoutprintln("本周开始日期:" + date + "-" + (i - k + 2));

Systemoutprintln("本周结束日期:" + date + "-" + i);

Systemoutprintln("-----------------------------------");

}

}

}

测试代码:

[java] view plain copy

public static void main(String[] args) throws Exception {

String s = "2013-";

for (int i = 1; i <= 12; i++) {

Systemoutprintln("");

Systemoutprintln("月份:" + i);

printfWeeks(s + i);

Systemoutprintln("");

}

// printfWeeks(s + 2);

}

//取得系统当前时间

Calendar cal = CalendargetInstance();

//取得系统当前时间所在月第一天时间对象

calset(CalendarDAY_OF_MONTH, 1);

//日期减一,取得上月最后一天时间对象

caladd(CalendarDAY_OF_MONTH, -1);

//输出上月最后一天日期

Systemoutprintln(calget(CalendarDAY_OF_MONTH));

第几周是该月的第几周吗 还是该年的第几周

下面的程序包含了2种情况, 请自行选择

package comcalender;

import javautilCalendar;

import javautilLocale;

/

输出某周的日期

演示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=CalendargetInstance(LocaleCHINA);

//设置calendar的日期,此处可以确定某一天

calset(CalendarYEAR, year);

calset(CalendarWEEK_OF_YEAR, weekCount);

//获取该天的信息(理论而言,通过改变get函数的参数,可以获取该天的任意信息)

int day=calget(CalendarDAY_OF_YEAR);

int[] days=new int[7];

for(int i=0;i<7;i++){

days[i]=calget(CalendarDAY_OF_MONTH);

// Systemoutprint((calget(CalendarMONTH)+1)+"月"+calget(CalendarDAY_OF_MONTH)+"日 ");

day++;

calset(CalendarDAY_OF_YEAR, day);

}

return days;

}

/

周计数为月中的周计数

@param year

@param month

@param weekCount

@return

/

public int[] getWeekDateByWeekInMonth(int year,int month,int weekCount){

Calendar cal=CalendargetInstance(LocaleCHINA);

calset(CalendarYEAR, year);

calset(CalendarMONTH, month-1);

calset(CalendarWEEK_OF_MONTH, weekCount);

int day=calget(CalendarDAY_OF_YEAR);

int[] days=new int[7];

for(int i=0;i<7;i++){

days[i]=calget(CalendarDAY_OF_MONTH);

// Systemoutprint((calget(CalendarMONTH)+1)+"月"+calget(CalendarDAY_OF_MONTH)+"日 ");

day++;

calset(CalendarDAY_OF_YEAR, day);

}

return days;

}

public static void main(String[] args) {

WeekCalendar wc=new WeekCalendar();

for(int i=0;i<7;i++){

Systemoutprint(wcgetWeekDateByWeekInYear(2011, 7)[i]+" ");

}

Systemoutprintln();

for(int i=0;i<7;i++){

Systemoutprint(wcgetWeekDateByWeekInMonth(2011,4, 2)[i]+" ");

}

}

}

package packjavacalendardemo; \x0d\ \x0d\import javatextSimpleDateFormat; \x0d\import javautilCalendar; \x0d\import javautilDate; \x0d\import javautilGregorianCalendar; \x0d\ \x0d\public class CalendarDemo { \x0d\ private static SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); \x0d\ public static void main(String[] args) { \x0d\ \x0d\ //获取calendar实例; \x0d\ Calendar calendar = CalendargetInstance(); \x0d\ \x0d\ //判断calendar是不是GregorianCalendar类的实例; \x0d\ if(calendar instanceof GregorianCalendar){ \x0d\ Systemoutprintln("属于GregorianCalendar类的实例!"); \x0d\ } \x0d\ \x0d\ //从calendar对象中获得date对象,当前时间; \x0d\ Date dates = calendargetTime(); \x0d\ \x0d\ //格式化时间; \x0d\ String date_str= date_formatformat(dates); \x0d\ Systemoutprintln(date_str); \x0d\ \x0d\ //设置月份05;代表日历的月份6月,因为月份从0开始。 \x0d\ calendarset(CalendarMONTH, 05); \x0d\ \x0d\ int months = calendarget(CalendarMONTH); \x0d\ Systemoutprintln(months); //输出05; \x0d\ \x0d\ //设置日期为2011-07-24 09:59:50 \x0d\ calendarset(2011, 06, 24, 9, 59, 50); \x0d\ String getDate = date_formatformat(calendargetTime()); \x0d\ Systemoutprintln(getDate); //输出2011-07-24 09:59:50; \x0d\ \x0d\ //比较日前大小; \x0d\ if(new Date()getTime() > calendargetTimeInMillis()){ \x0d\ Systemoutprintln("当前日期在后!"); \x0d\ }else{ \x0d\ Systemoutprintln("当前日期在前!"); \x0d\ } \x0d\ \x0d\ //设置当前时间为:2011-07-24 11:06:00 \x0d\ calendarsetTime(new Date()); \x0d\ int year = calendarget(CalendarYEAR); //获取年; \x0d\ int month = calendarget(CalendarMONTH); //获取月; \x0d\ int date = calendarget(CalendarDATE); //获取天; \x0d\ int hour = calendarget(CalendarHOUR); //获取小时; \x0d\ int minute = calendarget(CalendarMINUTE); //获取分钟; \x0d\ int second = calendarget(CalendarSECOND); //获取秒钟; \x0d\ int hour_of_day = calendarget(CalendarHOUR_OF_DAY); //第几个小时, \x0d\ int day_of_month = calendarget(CalendarDAY_OF_MONTH); //这天,在一个月内是第几天 \x0d\ int day_of_week = calendarget(CalendarDAY_OF_WEEK); //这天,在一周内,是第几天 \x0d\ int day_of_year = calendarget(CalendarDAY_OF_YEAR); //这天,在一年内,是第几天。 \x0d\ int week_of_year = calendarget(CalendarWEEK_OF_YEAR); //这周,在一年内是第几周; \x0d\ int week_of_month = calendarget(CalendarWEEK_OF_MONTH);//这周,在这个月是第几周;以以星为标准; \x0d\ int zone_offset = calendarget(CalendarZONE_OFFSET); //获取时区; \x0d\ int day_of_week_in_month = calendarget(CalendarDAY_OF_WEEK_IN_MONTH); //某月中第几周,按这个月1号算,1号起就是第1周,8号起就是第2周。以月份天数为标准 \x0d\ int r = calendarget(CalendarAM_PM); \x0d\ if(r==calendarAM){ \x0d\ Systemoutprintln("现在是上午"); \x0d\ } \x0d\ \x0d\ if(r==calendarPM){ \x0d\ Systemoutprintln("现在是下午"); \x0d\ } \x0d\ Systemoutprintln("=================================================="); \x0d\ Systemoutprintln(year); \x0d\ Systemoutprintln(month); \x0d\ Systemoutprintln(date); \x0d\ Systemoutprintln(hour); \x0d\ Systemoutprintln(minute); \x0d\ Systemoutprintln(second); \x0d\ Systemoutprintln(hour_of_day); \x0d\ Systemoutprintln(day_of_month); \x0d\ Systemoutprintln(day_of_week); \x0d\ Systemoutprintln(day_of_year); \x0d\ Systemoutprintln(week_of_year); \x0d\ Systemoutprintln(week_of_month); \x0d\ Systemoutprintln(zone_offset); \x0d\ Systemoutprintln(day_of_week_in_month); \x0d\ } \x0d\}

以上就是关于java中,现在知道总天数 days, 如何利用 Calendar 类,得到这些天数是多少年years全部的内容,包括:java中,现在知道总天数 days, 如何利用 Calendar 类,得到这些天数是多少年years、java怎样判断一段时间内有几个月,并且这几个月分别有多少天 忘高手指教、Jquery怎么得到一个月的所有天数 数据格式为1 2 3 4 5 到月底的所有数字 求高手解答。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9493704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存