java日期算法

java日期算法,第1张

你给出一个日期,计算下个一个月份是比较容易计算的,只需要把你给出日期的月份取出来然后加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)中的月份提取出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9666971.html

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

发表评论

登录后才能评论

评论列表(0条)

保存