A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 龏鈊づ廱鵆ぐ 中级黑马   /  2013-10-20 19:45  /  1401 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 龏鈊づ廱鵆ぐ 于 2013-10-21 19:16 编辑

输入某年某月某日计算这一天是这一年的第几天星期几

评分

参与人数 1技术分 +1 收起 理由
潘才新 + 1 奖励

查看全部评分

3 个回复

倒序浏览
int sum(int month,int day)
{
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i;
for(i=1;i<month;i++)
day+=days;
return(day);
}

int leap(year)
{
int leap=0;
if((year%4==0&&year%100!=0)||(year%400==0))
leap=1;
return leap;
}

void main()
{
int year,month,day,num;
printf("Please input year,month,day:\n");
scanf("%d,%d,%d",&year,&month,&day);
num=sum(month,day);
if(leap(year)&&month>=3)
num++;
printf("It is the %dth day.\n",num);
}
希望能明白!经过测试的!
回复 使用道具 举报
import java.util.*;
class  testDate
{
        public static void main(String[] args)
        {
                String[] week = {"","星期日","星期一","星期二",
                                                "星期三","星期四","星期五","星期六"};//数组用来查星期
                Calendar c = Calendar.getInstance();
                System.out.println("请输入要判断的日期!格式“YYYY-MM-DD”");
                Scanner scan = new Scanner(System.in);
                String str = scan.next();
                String[] arr = str.split("-");
                int year = Integer.parseInt(arr[0]);
                int month = Integer.parseInt(arr[1])-1;
                int day =   Integer.parseInt(arr[2]);
                c.set(year,month,day);
                int date = c.get(Calendar.DAY_OF_WEEK);
                String weekday = week[c.get(Calendar.DAY_OF_WEEK)];
                System.out.println("输入的日期是"+year+"-"+(month+1)+"-"+day);
                System.out.println("是"+weekday);
                System.out.println("是这一年的第"+c.get(Calendar.DAY_OF_YEAR)+"天");
        }
}
代码比较简单,输入的日期必须是存在的.....

回复 使用道具 举报
本题要考虑二月份的闰年29天和平年28天问题故定义了两个数组来解决
  1. import java.util.*;

  2. import java.util.Scanner;
  3. public class Test4{


  4. public static void main(String[]args){
  5.      System.out.println("请输入年份");
  6.      Scanner in = new Scanner(System.in);
  7.      int year = in.nextInt();
  8.      System.out.println("请输入月份");
  9.      int month = in.nextInt();
  10.      System.out.println("请输入日期");
  11.      int day = in.nextInt();
  12.       
  13.      int arr1[] = {31,28,31,30,31,30,31,31,30,31,30,31};//非闰年
  14.      int arr2[] = {31,29,31,30,31,30,31,31,30,31,30,31};//闰年
  15.       
  16.      int totalDay = 0;
  17.      int day1 = 0;

  18.      if(year%100!=0&&year%4 == 0){
  19.          if(month<2){
  20.              System.out.println(year+"年"+month+"月"+day+"日是今年的第"+day+"天");
  21.          }else{
  22.              for(int i = 2;i <= month;i++){
  23.                      day1 += arr2[i-2];
  24.              }
  25.              totalDay = day1 + day;
  26.              System.out.println(year+"年"+month+"月"+day+"日是今年的第"+totalDay+"天");}
  27.          
  28.      }else{
  29.          if(month<2){
  30.              System.out.println(year+"年"+month+"月"+day+"日是今年的第"+day+"天");
  31.          }else{
  32.              for(int i = 2;i <= month;i++){
  33.                      day1 += arr1[i-2];
  34.              }
  35.              totalDay = day1 + day;
  36.              System.out.println(year+"年"+month+"月"+day+"日是今年的第"+totalDay+"天");
  37.               
  38.          }
  39.      }
  40. }
  41. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马