你给出一个日期,计算下个一个月份是比较容易计算的,只需要把你给出日期的月份取出来然后加1就行了
1、下个月的月初是确定的,即下个月的1号
2、下个月的月中是确定的,即下个月的十五号
3、下个月的月末可以这么算,取得下下个月的1号,然后减去前天,即是下个月的最后一天。
由此得月初,月中,月末
import javatextSimpleDateFormat;
import javautilCalendar;
public class DataTest {
public static void main(String[] args) {
printWeekdays();
}
private static final int FIRST_DAY = CalendarMONDAY;
private static void printWeekdays() {
Calendar calendar = CalendargetInstance();
setToFirstDay(calendar);
for (int i = 0; i < 7; i++) {
printDay(calendar);
calendaradd(CalendarDATE, 1);
}
}
private static void setToFirstDay(Calendar calendar) {
while (calendarget(CalendarDAY_OF_WEEK) != FIRST_DAY) {
calendaradd(CalendarDATE, -1);
}
}
private static void printDay(Calendar calendar) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd EE");
Systemoutprintln(dateFormatformat(calendargetTime()));
}
}
Calendar cal = CalendargetInstance();
calsetTime(new Date());
int month = calget(CalendarMONTH); //注意月份是从0开始的,比如当前7月,获得的month为6
现在Date下面的大部分方法已经废弃,不推荐使用。
java获取一个时间的年月日代码及相关解释说明参考下面代码
package zhidao;
import javautilCalendar;
public class Test {
public static void main(String[] args) {
Calendar cal=CalendargetInstance();//使用日历类
int year=calget(CalendarYEAR);//获取年份
int month=calget(CalendarMONTH)+1;//获取月份,因为从0开始的,所以要加1
int day=calget(CalendarDAY_OF_MONTH);//获取天
Systemoutprintln("结果:"+year+"-"+month+"-"+day);
}
}
如果只是想从数据库中把日期调出来,可以定义一个日期对象来保存,比如你现在查询到的结果都保存在Result结果集中,假如其对象为rs,第6列的内容为日期内容,可是使用
javautilDate d = rsgetDate(6);
来获得该日期。
如果你想把日期对象导入数据库中,可以先使用一个String来保存日期,将其保存为一个字符串,然后在进行格式化,例如:
String birthday = "2007-08-21";
temp = new SimpleDateFormat("yyyy-MM-dd")parse(birthday);
javasqlDate bir = new javasqlDate(tempgetTime());
然后将bir插入数据库即可。
我的理解是如果输入的星期等于当前日期的星期数,那么返回下一个周对应星期数的日期,否则返回当前日期往后最近的一个匹配的星期数的日期。如果我的理解没问题的话下面代码就能满足你的要求:
import javautilCalendar;import javautilDate;
public class Main {
public static void main(String[] args) {
Systemoutprintln(getDateByWeek(2));
}
/
根据星期获取日期
@param week 星期几 1代码星期日,2代表星期一。。。7代表星期六
@return
/
public static Date getDateByWeek(int week) {
int targetWeek = week;
Calendar c = CalendargetInstance();
// 当前日期星期数
int currWeek = cget(CalendarDAY_OF_WEEK);
if (currWeek == targetWeek) {
// 如果所给星期数和当前日期星期数相等则向后推7天
cadd(CalendarDAY_OF_MONTH, 7);
return cgetTime();
}
do {
// 向后推一天,直到星期数与所给星期数相同
cadd(CalendarDAY_OF_MONTH, 1);
} while (targetWeek != cget(CalendarDAY_OF_WEEK));
return cgetTime();
}
}
import javatextDateFormat;
import javatextParseException;
import javatextSimpleDateFormat;
import javautilDate;
import javautilLocale;
public class TestDate {
public static void main(String[] args) {
String str1 = "Mon Mar 05 00:00:00 CST 2012";
String modle="yyyy-MM-dd HH:mm:ss";
Systemoutprintln(getTime(str1,modle));
}
public static String getTime(String str,String model){
String dateStr="";
SimpleDateFormat f=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",LocaleENGLISH);
try {
Date date=fparse(str);
dateStr=new SimpleDateFormat(model)format(date);
} catch (Exception e) {
eprintStackTrace();
}
return dateStr;
}
}
以上就是关于java日期算法全部的内容,包括:java日期算法、Java中获取本周内所有日期、JAVA语句怎么把日期(类型为DATA)中的月份提取出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)