import java.util.Calendar;
創(chuàng)新互聯(lián)建站成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計制作、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元零陵做網(wǎng)站,已為上家服務(wù),為零陵各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
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方法)中輸入你的出生年月日,調(diào)用該方法的計算結(jié)果并輸出信息“某某同學(xué)離自己最近下一次生日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 同學(xué),今天是你的生日,祝你生日快樂(#^.^#)", name, days));
} else {
System.out.println(String.format("%s 同學(xué)離自己最近下一次生日%d天。", name, days));
}
} else {
System.out.println("生日輸入不正確!請按格式輸入。");
}
sc.close();
}
/**
* 獲取最近一次生日天數(shù)
*
* @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;
}
}
}
獲取系統(tǒng)時間:
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);
}
用系統(tǒng)時間跟生日比較就行了
我加的import java.util.Date;和你老師說的import java.util.*;一樣,那我改成你那種把
我寫的應(yīng)該是最簡單的了,里面還寫了很多注釋,你可以看看,其實你新學(xué)習(xí),坑農(nóng)是看這些東西有點眼暈,別暈,其實都是很簡單的,JAVA的最大特點就是他有很多別人寫好的東西,調(diào)用就可以了,你不認識的就當(dāng)是調(diào)用了
import java.util.*;
import javax.swing.JOptionPane;
public class Test93 {
public static void main(String[] args) {
System.out.println("我行我素購物管理系統(tǒng)生日問候");
//這是一個死循環(huán),需要后面的break跳出
while (true) {
Date dt = new Date();
//dt就是獲得的當(dāng)前系統(tǒng)信息,下面用date的分別取今天的月份和日子
//注意月份要加1
//這里用Calendar會更好,但是貌似你要用date
int month = dt.getMonth() + 1;
int date = dt.getDate();
//用對話框提示用戶,并得到用戶的輸入
String id = JOptionPane.showInputDialog(null, "請輸入您的會員編號:");
String str = JOptionPane.showInputDialog(null, "請輸入您的生日:");
String month2 = str.substring(0, 2);
String date2 = str.substring(3, 5);
//轉(zhuǎn)換得到的字符串,和月份,日子分別比較
if (month == (Integer.parseInt(month2))
date == (Integer.parseInt(date2))) {
//一致就通知獲獎,并結(jié)束程序
System.out.println("第一個產(chǎn)生的壽星為:"+id+" 獲贈一個三星手機");
break;
} else {
//不一致繼續(xù)循環(huán)
System.out.println("今天不是您的生日");
String str2 = JOptionPane.showInputDialog(null, "繼續(xù)Y/N?");
//如果用戶輸入N則系統(tǒng)結(jié)束,大寫小寫N都可以
if ("N".equals(str2) || "n".equals(str2)) {
break;
}
}
}
}
}
最后再不愁一句,你把這個格式給修修,比如縮進什么的會更清晰,可以用eclipse 的ctrl+shift+f的快捷鍵
呵呵加油