导航:首页 > 源码编译 > java日期算法

java日期算法

发布时间:2022-08-29 01:53:41

⑴ 求java实现工作日方法

import java.text.DateFormat;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Test9 {

/**
* 第9题:编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
*
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {

Scanner scan = new Scanner(System.in);
System.out.println("请输入日期(格式为yyyy-mm-dd):");
String input = scan.next();
DateFormat format = DateFormat.getDateInstance();
Date date = format.parse(input);
Calendar ca = Calendar.getInstance();
ca.setTime(date); //设置输入时间
int xingqi = ca.get(Calendar.DAY_OF_WEEK);//获得输入日期是星期几?
System.out.println("您输入的日期是:"+input);
System.out.println("这一天是"+ GetWeek(xingqi));
System.out.println("这一天是这年的第"+ ca.get(Calendar.DAY_OF_YEAR)+"天");

}
public static String GetWeek(int i)
{
if(i<0||i>7){
System.out.println(i+"没有对应的星期");
}
String[] weeks={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return weeks[i];

}

}

⑵ JAVA日期计算

import java.util.Date;

public class DateUtil
{
/**
* milliseconds in one day
*/
public static final long MILLIS_IN_DAY = 1000 * 60 * 60 * 24;

/**
* get the n th date after the given date
*/
public static Date getNextNDate(Date date, int n) {
return new Date(date.getTime() + DateUtil.MILLIS_IN_DAY * n);
}

public static void main(String[] args) {
Date now = new Date();
System.out.println(now);
System.out.println("ten days later");
System.out.println(getNextNDate(now,10));
}
}

⑶ java 按日期分组 算法

直接用SQL语句
select count(id) as 数量,day(date) as 生产日期 from table group by day(date) order by day(czrq)

如果库里不止一个月的数据,那么再加个where条件

⑷ java中能不能输入一个格式为“年-月-日”的日期赋给一个变量x(若有,求算法)谢谢啦

/**
* 计算日期差
* @param dstr1 第一个日期
* @param dstr2 第二个日期
* @return charge 日期差
*/

public long charge(String dstr1,String dstr2){

SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
try{
Date d1 = (Date) sd.parse(dstr1);
Date d2 = (Date) sd.parse(dstr2);
charge = (d2.getTime()-d1.getTime())/(24*60*60*1000);

}catch(ParseException e){
e.printStackTrace();
}
return charge;
}
照上面的注释输入相应的日期就可以了

⑸ Java中如何把日期转换为秒数

Date类有一个getTime()可以换回秒数,例如:

publicclassDateToSecond
{
publicstaticvoidmain(String[]args)
{
Datedate=newDate(System.currentTimeMillis());
System.out.println(date.getTime());
}
}

⑹ java中关于日期的设置,算法不全,哪位可以帮忙写一下

public class TestDate {
/**
* 这个静态变量是用来表示,在润年的时候每个月的最大的天数,下标对应月份
* 如果不是润年的话,把DAYS[2]减1就可以了
*/
private static final int[] DAYS = {0,31,29,31,30,31,30,31,31,30,31,30,31};
/**
* 这个变量是用来贮存年的
*/
private int year;
/**
* 这个变量是用来贮存月的
*/
private int month;
/**
* 这个变量是用来贮存日的
*/
private int day;

/**
* 构造方法
*/
public TestDate() {
super();
}

/**
* 年的get方法
*/
public int getYear() {
return this.year;
}
/**
* 年的set方法
*/
public void setYear(int year){
this.year = year;
}
/**
* 月的get方法
*/
public int getMonth() {
return this.month;
}
/**
* 月的set方法
*/
public void setMonth(int month){
this.month = month;
}
/**
* 日的get方法
*/
public int getDay() {
return this.day;
}
/**
* 日的set方法
*/
public void setDay(int day){
this.day = day;
}

//============================= 下面是具体的方法 ===========================
/**
* 你的目的代码,设置日期
*/
public void set(int year,int month,int day){
boolean isLeepYear = this.isLeepYear(year);//判断是不是润年
this.year = year;//对成员变量赋值
this.month = ((month >= 1) && (month <= 12)) ? month : 1;
int _tempDay = DAYS[this.month];//获得这个月份的最大天数
if(!isLeepYear && month == 2) _tempDay--;//如果不是润年且是2月份,天数再减1
this.day = ((day >= 1) && (day <= _tempDay)) ? day : 1; //判断天数是否正确
}
/**
* 判断是不是润年,你的问题也在这儿,先写一个方法
* 确定是不是润年,以便能确定你的二月最多是多少天,其它的就没有什么了,是固定的
*/
public boolean isLeepYear(int year){
//具体算法你自己找找吧,网上一大堆,这里就不解释了
if((year % 400 == 0) || (year % 100 !=0 && year % 4 == 0)) return true;
else return false;
}
//========================= 再给你加个方法方便输出 ===========================
public String toString(){
return this.year + "-" + this.month + "-" + this.day;
}

public static void main(String[] args){
TestDate td = new TestDate();
//正确的
td.set(2000,2,29);
System.out.println(td);
td.set(1998,12,22);
System.out.println(td);
td.set(1997,4,18);
System.out.println(td);
//错误的
td.set(2000,2,33);
System.out.println(td);
td.set(1995,2,56);
System.out.println(td);
td.set(1996,15,80);
System.out.println(td);

}
}

⑺ java日期算法

你给出一个日期,计算下个一个月份是比较容易计算的,只需要把你给出日期的月份取出来然后加1就行了
1、下个月的月初是确定的,即下个月的1号
2、下个月的月中是确定的,即下个月的十五号
3、下个月的月末可以这么算,取得下下个月的1号,然后减去前天,即是下个月的最后一天。

由此得月初,月中,月末

⑻ JAVA日期算法问题

long time_old=System.currentTimeMillis(); /** 中间你所说的算法 **/ long time_new=System.currentTimeMillis(); //获取中间差时间 long time=time_new-time_old

⑼ java根据日期时间换算生辰八字算法。

生辰八字的介绍请参考:http://ke..com/view/158.htm#2

具体算法:
1、设置一个下限年,比如1960,1960年以前的就不给查。并且查万年历,该年节后是庚子年。
2、将天干和地支分别装在两个数组里面。
3、以该年为基准线,设定循环,以查询年为上限年,循环计数器每加一年,天干和地支数组标号各右移一位,然后if判断是否数组到底了,到底了则从头开始。

月、时的算法类似。

⑽ java如何计算日期的加减

第一种,知道日期,如2019091109144
String str=txnTime;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化输出日期
Date dt = null;
try {
dt = sdf.parse(str);
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.YEAR,-1);//日期减1年
rightNow.add(Calendar.MONTH,3);//日期加3个月
rightNow.add(Calendar.DAY_OF_YEAR,10);//日期加10天
rightNow.add(Calendar.SECOND,60);//日期加60秒天
Date dt1=rightNow.getTime();
String reStr = sdf.format(dt1);
System.out.println(reStr);
第二种,自己获取时间,格式化输出计算加减
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化输出日期
Date now = new Date();
long time = 60*1000;//60秒
Date afterDate = new Date(now .getTime() + time);//60秒后的时间
Date beforeDate = new Date(now .getTime() - time);//60秒前的时间
System.out.println(sdf.format(afterDate ));

阅读全文

与java日期算法相关的资料

热点内容
文件夹不能正反面打印怎么回事 浏览:847
中联搅拌站数据库在哪个文件夹 浏览:535
巧遇app怎么加人微信 浏览:597
云服务器二层互联 浏览:810
单片机两路模拟采样 浏览:884
如何把旧电脑变成服务器 浏览:165
linuxtimestamp 浏览:824
pdf有白边 浏览:512
linux内核文件路径 浏览:305
csgo国际服云服务器 浏览:918
stata回归命令vce是啥 浏览:569
身高换算法 浏览:883
如何用自己的服务器搭梯子 浏览:145
天津深度学习算法管理软件 浏览:234
雷军柳传志程序员图片 浏览:737
电脑加密锁客户端怎么下载 浏览:819
微信源码和二开 浏览:678
程序员英文简历模板下载 浏览:654
厦门一键轮廓度测量仪编程 浏览:281
androidsocket循环接收数据 浏览:227