编写程序提示用户输入日期,输出这天为星期几。
2014-03-14 18:59
621 查看
package judgeWeekday; import java.util.Scanner; public class JudgeWeekday { //参考点选择2014年1月1日星期三具有一定的特殊性;代码也与之有关。 public static final int YEAR0 = 2014; //public static final int MONTH0 = 1; //public static final int DAY0 = 1; public static final int WEEKDAY0 = 3; public static final String week[]={"天","一","二","三","四","五","六"}; public static final int leapmonthday[]={31,29,31,30,31,30,31,31,30,31,30,31}; public static final int noleapmonthday[]={31,28,31,30,31,30,31,31,30,31,30,31}; public static void main(String[] args) { Scanner console = new Scanner(System.in); System.out.print("input the date like 1983 3 29: "); int year = console.nextInt(); int month = console.nextInt(); int day = console.nextInt(); boolean ynleap = judgeleap(year); int weekday = judgeWeekday (year,month,day,ynleap); System.out.println( year + "年" + month + "月" + day +"日是星期" + week[weekday]); } public static int judgeWeekday (int year,int month,int day,boolean ynleap) { int sum = computeDaysDistance(year,month,day,ynleap); int weekday = getWeekday(sum,year); return weekday; } //计算输入输入日期与参考日期相隔的天数。 public static int computeDaysDistance(int year,int month,int day,boolean ynleap) { int sum = 0,sum1 = 0,sum2 = 0; if(year < YEAR0) { //计算sum1 for(int i = year + 1;i < YEAR0;i++) { if(judgeleap(i)) sum1 += 366; else sum1 += 365; } //计算sum2 if(ynleap) { sum2 = leapmonthday[month - 1]- day +1; for(int j = month + 1;j <=12;j++) sum2 += leapmonthday[j - 1]; } else { sum2 = noleapmonthday[month -1]- day +1; for(int j = month + 1;j <=12;j++) sum2 += noleapmonthday[j - 1]; } } else { //计算sum1 for(int i = YEAR0;i < year;i++) { if(judgeleap(i)) sum1 += 366; else sum1 += 365; } //计算sum2 sum2 = day -1; for(int j = 1;j <= month -1;j++) { if(ynleap) sum2 += leapmonthday[j - 1]; else sum2 += noleapmonthday[j -1]; } } //计算sum sum =sum1 + sum2; return sum; } //给与参考日期相隔的天数得到输入日期是星期几。 public static int getWeekday(int sum,int year) { int weekday = 0; if(year < YEAR0) weekday = (WEEKDAY0 + 7 - (sum %7))%7; else weekday = (WEEKDAY0 + (sum % 7))%7; return weekday; } //判断给定的year是否闰年。 public static boolean judgeleap(int year) { boolean ynleap; if(((year % 4 ==0)&&(year % 100!= 0))||(year % 400 == 0)) ynleap = true; else ynleap = false; return ynleap; } }//class
相关文章推荐
- 编写程序提示用户输入日期,输出这天为星期几。
- 黑马程序员—编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期, *程序计算这一天是星期几,并且计算出是一年中的第几天。 */
- 编写函数把华氏温度转换为摄氏温度,公式为:C = (F - 32) * 5/9 在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度。
- 黑马程序员---------------------编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期, * 程序计算这一天是星期几,并且计算出是一年中的第几天
- 编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天
- 黑马程序员 测试题:编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天
- 5.3 编写一个程序,显示用户输入的一个日期是该年度的第几天。
- 编写代码实现,模拟用户登录情景,并且只能登录三次,只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。
- 编写程序,要求用户输入一组数,输出信息说明其中有多少负数?
- 编写程序,提示用户输入一个整数,然后显示一个金子塔形状的图案
- 第二章作业51.4(编写一个程序,判断用户输入的字符是否为数字,若是数字,则输出“a numerical charater”,否则输出“other charater”。)
- 编写程序,用if else语句根据姓名查询teaching数据库中学生的基本信息和选课信息,学生姓名通过变量输入。不存在则输出提示信息
- P51 第4题 编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“a numerical character”,否则输出“other character”.
- 编写代码实现,模拟用户登录情景,并且只能登录三次。 只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。
- 编写一个程序,接受用户输入的一段英文文字后,输出其中的字符数、单词数和句子数(设句子以"?"、"!"、"."结束)。
- 编写一个程序,输入用户的姓名和电话号码,按姓名的词典顺序排列后,输出用户的姓名和电话号
- 3.4 编写一个程序,将用户输入的数字(0~6)转换成相应的星期值输出。如用户输 入 3,则程序输出“Today is Wed”;用户输入 0,则输出“Today is Sun”。如果用户输入 的数据
- 43.编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“a numerical character”
- //编写一个程序,显示用户输入的一个日期是该年度的第几天。
- 编写一个程序 提示用户输入三个数集,每个包括5个数 实现以下功能 (图)