中科因仑“3+1”工程特种兵精英论坛
标题:
电子日历代码(JAVA练习)
[打印本页]
作者:
墨奚
时间:
2014-8-12 17:02
标题:
电子日历代码(JAVA练习)
本帖最后由 墨奚 于 2014-8-12 17:05 编辑
/** 电子日历查询 */
import java.util.Scanner;
public class Test{
public static void main(String args[]){
int setYear = 0,setMonth = 0,setDay = 0;
boolean checkTime = false;
int setY = 0,setM = 0,setD = 0;
while(!checkTime){
System.out.print("\n\n");
Scanner get = new Scanner(System.in);
System.out.print("请输入设定年份:");
setY = get.nextInt();
System.out.print("请输入设定月份:");
setM = get.nextInt();
System.out.print("请输入设定日期:");
setD = get.nextInt();
if(setY>=1900){
if(setM==2){
if((setY%400==0)||((setY%4==0)&&(setY%100!=0))){
if(setD<=29){
checkTime = true;
}else{
checkTime = false;
}
}else{
if(setD<=28){
checkTime = true;
}else{
checkTime = false;
}
}
}else if((setM==4)||(setM==6)||(setM==9)||(setM==11)){
if(setD<=30){
checkTime = true;
}else{
checkTime = false;
}
}else{
if(setD<=31){
checkTime = true;
}else{
checkTime = false;
}
}
}else{
checkTime = false;
}
if(!checkTime){
System.out.println("输入的时间无效,请重新输入:");
}else{
System.out.println("操作成功!");
System.out.println("\n正在创建电子日历......");
}
}
setYear = setY;
setMonth = setM;
setDay = setD;
int i = 0,sum = 0,wekDay = 0,monthLong = 0;
char weekChar = ' ';
for(i=1990;i<setYear;i++){
if((i%400==0)||((i%4==0)&&(i%100!=0))){
sum += 366;
}else{
sum += 365;
}
}
for(i=1;i<setMonth;i++){
if(i==2){
if((setYear%400==0)||((setYear%4==0)&&(setYear%100!=0))){
sum += 29;
}else{
sum += 28;
}
}else if((i==4)||(i==6)||(i==9)||(i==11)){
sum += 30;
}else{
sum += 31;
}
}
if(setMonth==2){
if((setYear%400==0)||((setYear%4==0)&&(setYear%100!=0))){
monthLong = 29;
}else{
monthLong = 28;
}
}else if((setMonth==4)||(setMonth==6)||(setMonth==9)||(setMonth==11)){
monthLong = 30;
}else{
monthLong = 31;
}
switch((sum+setDay)%7){
case 0:weekChar = '日';break;
case 1:weekChar = '一';break;
case 2:weekChar = '二';break;
case 3:weekChar = '三';break;
case 4:weekChar = '四';break;
case 5:weekChar = '五';break;
case 6:weekChar = '六';break;
}
sum += 1;
wekDay = sum%7;
System.out.println("\n\n设定日期为:"+setYear+"-"+setMonth+"-"+setDay+"\t星期"+weekChar+"\n\n");
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(i=0;i<(wekDay%7);i++){
System.out.print("\t");
}
for(i=1;i<=monthLong;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum ++;
}
System.out.println("\n\n创建成功!\n");
}
}
复制代码
作者:
lucky80204
时间:
2014-8-12 19:43
给力啊。。。好
作者:
伊海
时间:
2014-8-12 19:47
从哪一年开始
作者:
伊海
时间:
2014-8-12 19:51
伊海 发表于 2014-8-12 19:47
从哪一年开始
再加一个功能,实现显示后N个月日历
作者:
lxe
时间:
2014-8-12 19:55
高手。。。。大神
作者:
墨奚
时间:
2014-8-12 19:58
伊海 发表于 2014-8-12 19:47
从哪一年开始
>=1900年
作者:
墨奚
时间:
2014-8-12 19:59
伊海 发表于 2014-8-12 19:51
再加一个功能,实现显示后N个月日历
显示那么多干嘛?
作者:
杨玉玺
时间:
2014-8-13 08:48
太好了,楼主
作者:
张衍波
时间:
2014-8-13 14:12
很牛的感觉,以后就不用看日历了,自己做一个就行了
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/)
Powered by Discuz! X3.4