如果是以当前时间为起点,得到自然年,可以这样:
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 到月底的所有数字 求高手解答。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)