📄 ex4_18.java
字号:
//4.18(显示当前日期和时间)
import javax.swing.JOptionPane;
public class Ex4_18{
public static void main (String[] args) {
long totalMilliseconds=System.currentTimeMillis();//获得从1970.1.1零点到此刻的毫秒数
long totalSeconds=totalMilliseconds/1000;//获得从1970.1.1零点到此刻的秒数
long totalMinutes=totalSeconds/60;
long totalHours=totalMinutes/60;
long totalDays=totalHours/24;
int currentSecond=(int)(totalSeconds%60);
int currentMinute=(int)(totalMinutes%60);
int currentHour=(int)(totalHours%24)+8;//得到的CMT时间加上8小时为北京时间
int currentYear=1970,currentMonth=1,currentDay,total=0,i=0;
while(total<=totalDays){//从1970开始累加每年的天数,利用currentYear计算累加的次数即可得到现在的年份
if(isLeapYear(currentYear))
total=total+366;
else
total=total+365;
currentYear++;
};
currentYear--;
if(isLeapYear(currentYear)) total=total-366;
else total=total-365;
while(i<=totalDays-total){//同求年份一样,从一月份开始累加求得当前的月份
i=i+getDayofMonth(currentMonth,currentYear);
currentMonth++;
}
currentMonth--;
currentDay=((int)totalDays-total)-(i-getDayofMonth(currentMonth,currentYear))+1;//求得当前的天数
String printTime="当前时间为:"+currentYear+"/"+currentMonth+"/"+currentDay+" "+
currentHour+":"+currentMinute+":"+currentSecond+"(北京时间)";
JOptionPane.showMessageDialog(null,printTime);
System.exit(0);
}
static boolean isLeapYear(int year){//判断是否为闰年的函数
return year%400==0||(year%4==0&&year%100!=0);
}
static int getDayofMonth(int currentMonth,int currentYear){ //确定每个月的天数
if(currentMonth==1||currentMonth==3||currentMonth==5||currentMonth==7||
currentMonth==8||currentMonth==10||currentMonth==12)
return 31;
if(currentMonth==4||currentMonth==6||currentMonth==9||currentMonth==11)
return 30;
if(currentMonth==2) return isLeapYear(currentYear)? 29 : 28;
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -