黑马程序员技术交流社区

标题: 输入2013年任意一天就能告诉你星期几 [打印本页]

作者: 康嘉    时间: 2013-3-17 21:03
标题: 输入2013年任意一天就能告诉你星期几
If 语句课后题说让输入数字,打出星期几,哥们来个2013年任意月份和日期就告诉你星期几的

赶紧学新的吧,这个弄出来就后悔了,因为太崩溃了

回帖见崩溃的代码==========================================

[hide=d6]//x是月份,y是日期
//输入2013年的任意一天,能告诉你是星期几,神奇~~=====if elseif  几层嵌套?
class XingQi{
        public static void main(String[] args) {
                 //定义一个日期,x=月份,y=日子
                   int x=11,y=11;
                 //  这是三月份的
                if (x==3&y>0&y<=31){
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }
                }else if(x==4&y>0&y<=30){  //  这是四月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }
                }else if(x==5&y>0&y<=31){  //  这是五月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }
                }else if(x==6&y>0&y<=30){  //  这是六月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }
                }else if(x==7&y>0&y<=31){//  这是七月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }
                }else if(x==8&y>0&y<=31){//  这是八月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }
                }else if(x==9&y>0&y<=30){//  这是九月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }
                }else if(x==10&y>0&y<=31){//  这是十月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }
                }else if(x==11&y>0&y<=30){//  这是十一月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }
                }else if(x==12&y>0&y<=31){//  这是十二月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }
                }else if(x==1&y>0&y<=31){//  这是一月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }       
                }else if(x==2&y>0&y<=28){  //  这是二月份的
                        if (y%7==1){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期五");
                        }else if(y%7==2){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期六");
                        }else if(y%7==3){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期日");
                        }else if(y%7==4){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期一");
                        }else if(y%7==5){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期二");
                        }else if(y%7==6){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期三");
                        }else if(y%7==0){
                                System.out.println("2013年"+x+"月"+y+"日"+"是星期四");
                        }
                }else{
                        System.out.println(x+"月"+y+"日哥们日子过晕了吧~");
                }
        }
}[/hide]
//=============================================================




作者: 何仕映    时间: 2013-3-17 21:05
借鉴一下
作者: 康嘉    时间: 2013-3-17 21:09
何仕映 发表于 2013-3-17 21:05
借鉴一下

你都23分了啊....太狠了
作者: 徐鸿燕    时间: 2013-3-17 21:13
                          路过~
作者: 徐鸿燕    时间: 2013-3-17 21:14
                          路过~
作者: 我自信我很牛    时间: 2013-3-17 21:17
这个逻辑不难吧。。
作者: 安鹏宇    时间: 2013-3-17 21:19
看看。。。。
作者: 徐鸿燕    时间: 2013-3-17 21:23
        楼主能用if-else写到底真不容易,表扬表扬~{:soso_e127:}
作者: 杨博    时间: 2013-3-17 21:25
看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
作者: HM刘俊    时间: 2013-3-17 21:28
看看啊

作者: Walking Walking    时间: 2013-3-17 21:28
学习一下
作者: 徐鸿燕    时间: 2013-3-17 21:41
其实只是需要得到2013任意一天是星期几的话,可以换个思路。
步骤:1:首先2013年不是闰年,这一年的每月的天数就是:1、3、5、7、8、10、12都为31天,2月份为28天,其它都是30天。
         2:(为了方便)看下电脑2013年的1月1号是礼拜几。(礼拜二)——那就在case里设置为2,礼拜三为3...依次下去
         3:算出(1月1号到你给的几月几号)之间的总天数。 days
         4:通过(days % 7 = ?)这个公式得出的值。x
         5:case一下,x是几,然后这天就是礼拜几。


作者: 炉海佳    时间: 2013-3-17 21:43
你搞个回复才可以看 真是郁闷
作者: 毛恩奇    时间: 2013-3-17 21:43
看看,学习一下
作者: hg3093483    时间: 2013-3-17 21:46
学习中,领悟中。。。
作者: 冯超    时间: 2013-3-17 21:52
看看········
作者: 我自信我很牛    时间: 2013-3-17 21:52
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int x=3,y=17,z=1;
  6.                 String [] arr={"星期二","星期三","星期四","星期五","星期六","星期日","星期一"};
  7.                         switch (x){
  8.                         case 1:
  9.                                 z=y%7;
  10.                         System.out.println(arr[z-1]);break;
  11.                         case 2:
  12.                                 y=31+y;
  13.                                 z=y%7;
  14.                         System.out.println(arr[z-1]);break;
  15.                         case 3:
  16.                                 y=31+28+y;
  17.                                 z=y%7;
  18.                         System.out.println(arr[z-1]);break;
  19.                         case 4:
  20.                                 y=31+28+31+y;
  21.                                 z=y%7;
  22.                         System.out.println(arr[z-1]);break;
  23.                         case 5:
  24.                                 y=31+28+31+30+y;
  25.                                 z=y%7;
  26.                         System.out.println(arr[z-1]);break;
  27.                         case 6:
  28.                                 y=31+28+31+30+31+y;
  29.                                 z=y%7;
  30.                         System.out.println(arr[z-1]);break;
  31.                         case 7:
  32.                                 y=31+28+31+30+31+30+y;
  33.                                 z=y%7;
  34.                         System.out.println(arr[z-1]);break;
  35.                         case 8:
  36.                                 y=31+28+31+30+31+30+31+y;
  37.                                 z=y%7;
  38.                         System.out.println(arr[z-1]);break;
  39.                         case 9:
  40.                                 y=31+28+31+30+31+30+31+31+y;
  41.                                 z=y%7;
  42.                         System.out.println(arr[z-1]);break;
  43.                         case 10:
  44.                                 y=31+28+31+30+31+30+31+31+30+y;
  45.                                 z=y%7;
  46.                         System.out.println(arr[z-1]);break;
  47.                         case 11:
  48.                                 y=31+28+31+30+31+30+31+31+30+31+y;
  49.                                 z=y%7;
  50.                         System.out.println(arr[z-1]);break;
  51.                         default:
  52.                                 y=31+28+31+30+31+30+31+31+30+31+30+y;
  53.                                 z=y%7;
  54.                         System.out.println(arr[z-1]);break;
  55.                         }
  56.         }
  57. }
复制代码
我也写了一个 哈哈
作者: 丘凤光    时间: 2013-3-17 21:53
回帖见崩溃的代码?我来看看什么崩溃的代码
作者: Walking Walking    时间: 2013-3-17 22:26
用java api提供的相关类就可以实现,不用自己写,参见以下代码:

import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Day {
public static void main(String[] args) {
  int month = 1;
  int day = 1;
  
  try {
   Calendar rightNow = Calendar.getInstance(); //初始化日期实例
   rightNow.set(Calendar.YEAR, 2013); //设置年
   rightNow.set(Calendar.MONTH, getMonth(month)); //设置月
   rightNow.set(Calendar.DAY_OF_MONTH, day);//设置日
   SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日 E"); //格式化日期输出格式
   
   System.out.print(f.format(rightNow.getTime()));
   
  } catch (Exception e) {
   
   e.printStackTrace();
   
  }
}
private static int getMonth(int month) throws Exception {//控制输入的月份
  
  if (month < 0 || month > 12) {
   
   throw new Exception("不存在的月份"+month+",重新输入");
  }
  
  int i = month - 1;
  
  return i;
}

}

作者: 黑马19我最牛    时间: 2013-3-17 22:31
为什么回帖才能看那?
作者: 康嘉    时间: 2013-3-17 22:38
徐鸿燕 发表于 2013-3-17 21:23
楼主能用if-else写到底真不容易,表扬表扬~

确实很崩溃...哈哈哈哈哈
作者: 康嘉    时间: 2013-3-17 22:39
徐鸿燕 发表于 2013-3-17 21:41
其实只是需要得到2013任意一天是星期几的话,可以换个思路。
步骤:1:首先2013年不是闰年,这一年的每月的 ...

这个可以试试  ....
作者: 胡峰    时间: 2013-3-17 22:47
小样.顶下
作者: 胡峰    时间: 2013-3-17 22:56
烟磊磊 发表于 2013-3-17 21:52
我也写了一个 哈哈

怎么也像你这样把代码贴到这里?  Editplus那个键?
作者: 刘海陆    时间: 2013-3-17 22:59
看看看看看看看看看看看看看看
作者: 刘海陆    时间: 2013-3-17 23:00
这个,有更简化的代码吗???
作者: 胡帅冰    时间: 2013-3-17 23:01
这个一定要看看。。。
作者: 胡帅冰    时间: 2013-3-17 23:03
看完之后,我觉得吧。这个……会不会让人很崩溃???
作者: 我自信我很牛    时间: 2013-3-17 23:03
胡峰 发表于 2013-3-17 22:56
怎么也像你这样把代码贴到这里?  Editplus那个键?

你先把代码复制,然后你发帖那里有俩个<>点开然后粘贴到里面就可以了
作者: IT菜鸟    时间: 2013-3-17 23:18
让看看呗
作者: 康嘉    时间: 2013-3-17 23:46
烟磊磊 发表于 2013-3-17 21:52
我也写了一个 哈哈

没学到这呢,先领教了,呵呵
作者: 康嘉    时间: 2013-3-17 23:47
胡峰 发表于 2013-3-17 22:47
小样.顶下

你顶,必须的啊
作者: 康嘉    时间: 2013-3-17 23:47
flyme2012 发表于 2013-3-17 23:03
看完之后,我觉得吧。这个……会不会让人很崩溃???

你觉得呢~~~我写完就崩溃了
作者: 胡峰    时间: 2013-3-17 23:52
烟磊磊 发表于 2013-3-17 23:03
你先把代码复制,然后你发帖那里有俩个点开然后粘贴到里面就可以了

知道了.谢谢.
作者: VOIDMAIN    时间: 2013-3-17 23:55
我看评论就知道你怎么写的了。。。
作者: 康嘉    时间: 2013-3-17 23:57
VOIDMAIN 发表于 2013-3-17 23:55
我看评论就知道你怎么写的了。。。

高手啊~
作者: 丘凤光    时间: 2013-3-18 01:11
大家看看我写这个,是不是简单多了?
  1. /**
  2. 需求:将2013年的某月某日,换算并打印出对应的星期

  3. 思路:
  4. 1、将该月该日换算成2013年的第x天
  5. 2、7天为一个星期的周期,x%7得出对应的星期

  6. */

  7. class  DayToWeek
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 int month=2,day=3;
  12.                 System.out.println("2013年"+month+"月"+day+"日是星期"+Week.trans(month,day));//打印日期对应的星期数
  13.         }
  14. }

  15. class Week
  16. {
  17.         private static int month;
  18.         private static int day;
  19.         private static int days;
  20.         private static int[] cha=new int[]{0,1,-1,0,0,1,1,2,3,3,4,4};//2013年某月某日的总天数与(月份-1)*30+日期的差
  21.         private static String[] w=new String[]{"一","二","三","四","五","六","天"};//定义并初始化星期数组
  22.         public static String trans(int month,int day)
  23.         {
  24.                 if(month>0&&month<=12)
  25.                 {
  26.                         days=(month-1)*30+day+cha[month-1];//算出该月该日是2013年的第几天
  27.                 }
  28.                 return w[days%7];        //返回星期数,2013年第一天是周二
  29.         }       
  30. }
复制代码

作者: 胡帅冰    时间: 2013-3-18 10:32
康嘉 发表于 2013-3-17 23:47
你觉得呢~~~我写完就崩溃了

看的也很崩溃。能实现任意一年,任意一天都可以显示星期几么??
作者: 彭波    时间: 2013-3-18 16:38
嗯。看看了解下
作者: HM刘博    时间: 2013-3-18 16:41
看看看看看
作者: 康嘉    时间: 2013-3-18 23:15
胡帅冰 发表于 2013-3-18 10:32
看的也很崩溃。能实现任意一年,任意一天都可以显示星期几么??

按照这个思路绝对是要累死人的,这只是 if else 的练习而已,在我学到新的方法之前,建议你搞本万年历吧,哈哈哈哈
作者: 陈迎春    时间: 2013-3-18 23:31
康嘉 发表于 2013-3-17 21:03:43
If 语句课后题说让输入数字,打出星期几,哥们来个2013年任意月份和日期就告诉你星期几的

赶紧学新的吧,这个弄出来就后悔了,因为太崩溃了

回帖见崩溃的代码================

看看~0
作者: 施家雄    时间: 2013-3-18 23:40
支持,我也想了解下!
作者: 谢宝盛    时间: 2013-3-19 12:04
学习一下
作者: 胡帅冰    时间: 2013-3-19 12:37
康嘉 发表于 2013-3-18 23:15
按照这个思路绝对是要累死人的,这只是 if else 的练习而已,在我学到新的方法之前,建议你搞本万年历吧,哈 ...

:lol  哈哈……好吧。可以根据万年历的思想来编一个。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2