「java生日」java生日相同

博主:adminadmin 2022-12-23 18:03:04 64

今天给各位分享java生日的知识,其中也会对java生日相同进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么用JAVA写生日提醒器

import java.util.*;

import java.text.*;

public class TestDate {

public static void main(String[] args) {

Calendar ca = Calendar.getInstance();

int year = ca.get(Calendar.YEAR);//获取年份

int month=ca.get(Calendar.MONTH);//获取月份

int day=ca.get(Calendar.DATE);//获取日

int minute=ca.get(Calendar.MINUTE);//分

int hour=ca.get(Calendar.HOUR);//小时

int second=ca.get(Calendar.SECOND);//秒

int WeekOfYear = ca.get(Calendar.DAY_OF_WEEK);

}

用系统时间跟生日比较就行了

java如何对生日(yyyymmdd)进行合法性判断?

修改你说的存在的bug

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class TestBirthday {

public static void main(String[] args){

String birthday="20130132";

System.out.println(isBirthday(birthday));

}

/*

* @param : birthday 传入一个日期格式的字符串

* 支持 yyyy-MM-dd ,yyyyMMdd MM-dd-yyyy ,yyyy年MM月dd日

* @isBirthday 判断输入的字符串是否是合法的生日 生日不能大于当前日期

* */

public static boolean isBirthday(String birthday){

//定义需要过滤的条件,可以将你期望的日期格式添加到数组中

String[] formats={

"yyyy-MM-dd",

"yyyyMMdd",

"MM-dd-yyyy",

"yyyy年MM月dd日"

};

/*

* 设置格式过滤器

*/

//记录传入的日期字符串,转换成日期类型

Date birth=null;

//判断格式是否正确,默认值为false

boolean isRight=false;

for(String f:formats){

try {

birth =new SimpleDateFormat(f).parse(birthday);

//校验日期转换后是和传入的值不相同,说明日期传入有问题

//修正楼上提到的bug

if(!new SimpleDateFormat(f).format(birth).equals(birthday)){

return false;

}

isRight=true;

break;

} catch (ParseException e) {}

}

if(isRight){

//获取当前日期的毫秒数

long now =new Date().getTime();

//获取生日的毫秒数

long birthTime = birth.getTime();

//如果当前时间小于生日,生日不合法。反之合法

return birthTime=now;

}else{

//输入的参数类型不是日期类型,或者类型和过滤中设置的类型不匹配

return false;

}

}

}

java编写一个简单的输入生日计算下一个生日时间的代码?

import java.util.Calendar;

import java.util.Scanner;

import java.util.concurrent.TimeUnit;

/**

* Title: Test03.javabr

* Description:

*

* @author 王凯芳

* @date 2020年3月5日 下午6:03:04

* @version 1.0

*

* @request 编写一个方法能计算任何一个人今天离他最近下一次生日还有多少天,然后在主方法(main方法)中输入你的出生年月日,调用该方法的计算结果并输出信息“某某同学离自己最近下一次生日x天”。

*/

public class Test03 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的姓名:");

String name = sc.nextLine();

System.out.println("请输入你的生日,格式为(2000/01/01):");

String line = sc.nextLine();

String[] strs = line.split("/");

if (strs.length == 3) {

int days = getDays(strs[0], strs[1], strs[2]);

if (days == 0) {

System.out.println(String.format("%s 同学,今天是你的生日,祝你生日快乐(#^.^#)", name, days));

} else {

System.out.println(String.format("%s 同学离自己最近下一次生日%d天。", name, days));

}

} else {

System.out.println("生日输入不正确!请按格式输入。");

}

sc.close();

}

/**

* 获取最近一次生日天数

*

* @param year

* @param month

* @param day

* @return

*/

public static int getDays(String year, String month, String day) {

Calendar now = Calendar.getInstance();

now.set(Calendar.HOUR_OF_DAY, 0);

now.set(Calendar.MINUTE, 0);

now.set(Calendar.SECOND, 0);

now.set(Calendar.MILLISECOND, 0);

int now_year = now.get(Calendar.YEAR);

Calendar birthday = Calendar.getInstance();

birthday.set(Calendar.YEAR, now_year);

birthday.set(Calendar.MONTH, Integer.parseInt(month) - 1);

birthday.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));

birthday.set(Calendar.HOUR_OF_DAY, 0);

birthday.set(Calendar.MINUTE, 0);

birthday.set(Calendar.SECOND, 0);

birthday.set(Calendar.MILLISECOND, 0);

long diff = now.getTimeInMillis() - birthday.getTimeInMillis();

if (diff == 0) {

return 0;

} else if (diff 0) {

long diffDays = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);

return Math.abs((int) diffDays);

} else {

birthday.add(Calendar.YEAR, 1);

long diffMi = birthday.getTimeInMillis() - now.getTimeInMillis();

long diffDays = TimeUnit.DAYS.convert(diffMi, TimeUnit.MILLISECONDS);

return (int) diffDays;

}

}

}

java生日的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java生日相同、java生日的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。