精华内容
下载资源
问答
  • 设计函数实现输入日期显示星期几。下面程序的代码:/************************************************************Copyright(C),1988-1999,HuaweiTech.Co.,Ltd.FileName:main.cppAuthor:LightVersion:1.0Date:...

    设计函数实现输入日期显示星期几。

    下面为程序的代码:

    /************************************************************

    Copyright (C), 1988-1999, Huawei Tech. Co., Ltd.

    FileName: main.cpp

    Author: Light

    Version :   1.0

    Date:   2018/4/17

    Description: 输入日期,返回星期几     // 模块描述

    Version:  仅用于软件测试,完成作业// 版本信息

    Function List:    // 主要函数及其功能

    1.

    History:

    // 历史修改记录

    Light    18/4/17     1.0      建立函数

    ***********************************************************/

    import java.text.ParseException;

    import java.text.SimpleDateFormat;

    import java.util.Calendar;

    import java.util.Date;

    import java.util.Scanner;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    public class main {

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    String year = null;//年份

    String month = null;//月份

    String day = null;//日

    //输入年月日

    @SuppressWarnings("resource")

    Scanner scanner1 = new Scanner(System.in);

    @SuppressWarnings("resource")

    Scanner scanner2 = new Scanner(System.in);

    @SuppressWarnings("resource")

    Scanner scanner3 = new Scanner(System.in);

    System.out.println("请输入年份:");

    year=scanner1.next();

    System.out.println("请输入月份:");

    month=scanner2.next();

    System.out.println("请输入日:");

    day=scanner3.next();

    //检测输入是否响应

    System.out.println( "输入的时间为:" + year + "年" + month + "月" + day + "日");

    //检测输入的内容是否为数字,或为空

    if(!isNumber(year) || !isNumber(month) || !isNumber(day) )

    {

    System.out.println("检测到您的输入不合法,请输入数字!");

    }

    else

    {

    int year_rual=Integer.parseInt(year);

    int month_rual=Integer.parseInt(month);

    int day_rual=Integer.parseInt(day);

    //判断输入的日期是否合法

    if (judge(year_rual,month_rual,day_rual))

    {

    String weekday=weekByDate(year_rual,month_rual,day_rual);

    System.out.println( year + " 年" + month + " 月" + day + " 日是 " + weekday);

    }

    else

    {

    System.out.println("检测到您的输入不合法,请输入合法日期!");

    }

    }

    }

    /**

    * 判断输入的年月日是否为数字,或为空

    * @param number //输入内容

    * @return boolean//返回值为true符合规则,返回值为false不符合规则

    */

    public static boolean isNumber(String number)

    {

    if (number == null || "".equals(number.trim()))

    {

    return false;

    }

    Pattern pattern = Pattern.compile("[0-9]*");

    Matcher isNum = pattern.matcher(number.trim());

    if (isNum.matches())

    {

    return true;

    }

    else

    {

    return false;

    }

    }

    /**

    * 判断输入的年月日是否符合规则

    * @param year //年份

    * @param month // 月份

    * @param day //天

    * @return boolean//返回值为true符合规则,返回值为false不符合规则

    */

    public static boolean judge (int year,int month,int day)

    {

    //当输入的数字小于零时,返回false

    if (year <= 0)

    {

    return false;

    }

    if (month <= 0 || month > 12)

    {

    return false;

    }

    if (day<=0 || day > 31){

    return false;

    }

    //年份能被4整除并且不能被100整除,或者能被400整除,则为闰年

    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))

    {

    if (month == 2)

    {

    //闰年的2月

    if (day > 29)

    {

    return false;

    }

    }

    }else{

    //不是闰年的2月

    if (month == 2)

    {

    if (day > 28)

    {

    return false;

    }

    }

    }

    //1、3、5、7、8、10、12月份为31天

    int[] m1 = {1,3,5,7,8,10,12};

    for (int i = 0; i < m1.length; i++){

    if (month == m1[i])

    {

    if (day>31)

    {

    return false;

    }

    }

    }

    //4、6、9、12月份为30天

    int[] m2 = {4,6,9,11};

    for (int j = 0; j < m2.length; j++)

    {

    if (month == m2[j])

    {

    if (day > 30)

    {

    return false;

    }

    }

    }

    return true;

    }

    /**

    * 根据年月日返回星期几

    * @param year //年份

    * @param month //月份

    * @param day //天

    * @return String //返回值直接返回星期几

    */

    public static String weekByDate (int year,int month,int day)

    {

    String str="";

    SimpleDateFormat fmt = new SimpleDateFormat("dd MM yyyy");

    Date d = null;

    try {

    d = fmt.parse(day+" "+month+" "+year);

    }

    catch (ParseException e)

    {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    Calendar cal = Calendar.getInstance();

    cal.setTime(d);

    int weekDay = cal.get(Calendar.DAY_OF_WEEK);

    switch(weekDay) {

    case 1 : str="SUNDAY"; break;

    case 2 : str="MONDAY"; break;

    case 3 : str="TUESDAY"; break;

    case 4 : str="WEDNESDAY"; break;

    case 5 : str="THURSDAY"; break;

    case 6 : str="FRIDAY"; break;

    case 7 : str="SATURDAY"; break;

    default: break;

    }

    return str;

    }

    }

    展开全文
  • 计算某个日期星期几? package pac1; import java.util.Scanner; public class weekTest { public static boolean isLeap(int year){ boolean leap=year%4==0||year%100!=0&&year%400==0;//判断是否...

    计算某个日期是星期几?

    package pac1;
    
    
    
    import java.util.Scanner;
    
    public class weekTest {
    	public static boolean isLeap(int year){
    		boolean leap=year%4==0||year%100!=0&&year%400==0;//判断是否为闰年
    		return leap;
    	}
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int a=0,b=0;//a为闰年个数,b为平年个数
    		Scanner sc=new Scanner(System.in);
    		int year=sc.nextInt();//输入自定义年、月、日,求星期几
    		int month=sc.nextInt();
    		int day=sc.nextInt();
    
    		
    		//计算有多少个闰年和多少个平年
    		for(int i=1980;i<year;i++){//以1980年1月1日星期二为起始点
    			if(isLeap(i))
    			{
    				System.out.printf("%d是闰年%n",i);
    				a++;
    			}
    			else{
    				System.out.printf("%d是平年%n",i);
    				b++;
    			}
    		}
    		System.out.printf("闰年有%d个,",a);//a个闰年
    		System.out.printf("平年有%d个",b);//b个平年
    
    		int tian=a*2+b*1;//闰年+2,平年加1
    		System.out.printf("%n年总天数有%d天%n",tian);
    
    		
    		int yue=0;//从2019.1月到year.month月一共有多少天
    		for(int j=month-1;j>0;j--){
    			switch(j){
    			case 1:case 3:case 5:case 7:case 8:case 10:yue+=31;break;
    			case 4:case 6:case 9:case 11:yue+=30;break;
    			case 2:yue+=isLeap(year)?29:28;
    			}
    			
    		}
    		System.out.printf("从"+year+"年1月到"+year+"年"+month+"月一共有%d天%n",yue);
    		System.out.println("本月过了"+day+"天");
    		int total=tian+yue+day;
    		System.out.printf("总天数=%d天%n", total);
    		int week=1;
    	    week=(week+total)%7;
    		System.out.println(week);
    		System.out.printf(year+"年"+month+"月"+day+"日     星期");
    		switch(week)
    		{
    			case 0:System.out.println("日");break;
    			case 1:System.out.println("一");break;
    			case 2:System.out.println("二");break;
    			case 3:System.out.println("三");break;
    			case 4:System.out.println("四");break;
    			case 5:System.out.println("五");break;
    			case 6:System.out.println("六");break;
    		
    	}
    
    }
    }
    
    
    
    
    
    
    展开全文
  • 但实际上我需要周的时间,每周的开始日为星期一,结束日为星期日 . 例如,2012年1月将有5周 . 但根据上述标准,它将有6周 .2012年1月第一周 - 周日01第二周 - 周日2月8日至8日第三周 - 周一至周五9日第四周 - ...

    以下是我用来计算一个月内的周数的代码 . 但实际上我需要几周的时间,每周的开始日为星期一,结束日为星期日 . 例如,2012年1月将有5周 . 但根据上述标准,它将有6周 .

    2012年1月

    第一周 - 周日01

    第二周 - 周日2月8日至8日

    第三周 - 周一至周五9日

    第四周 - 周一至周日16日至22日

    第五周 - 周日23日至29日

    第六周 - 周一至周三30周二 .

    以下代码仅提供5周 .

    public class Test {

    public static void main(String[] args)

    {

    Calendar calendar = Calendar.getInstance();

    int year = 2012;

    int month = Calendar.JANUARY;

    int date = 1;

    calendar.set(year, month, date);

    int numOfDaysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

    int numOfWeeksInMonth = calendar.getActualMaximum(Calendar.WEEK_OF_MONTH);

    System.out.println("Number of Days In Month: " + numOfDaysInMonth);

    System.out.println("Number of Weeks In Month: " + numOfWeeksInMonth);

    }

    }

    上面代码的输出是

    月份天数:31

    月份周数:5

    但我需要得到"Number of Weeks In Month:"为6

    *此外,我试图以ddMMYYYY格式获取每周的开始日期和结束日期 . *我仍在努力 .

    任何人都可以帮我解决这个问题吗?

    展开全文
  • 随机输入日期计算星期几,打印任意一年的日历 已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几 实现思路: 一、知道1900年1月1日为星期一,求输入的年份月份与1900年1月1日相隔的总天数。闰年366天...

    需求说明:

    随机输入日期计算星期几,打印任意一年的日历

    已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几

    实现思路:

    一、知道1900年1月1日为星期一,求输入的年份月份与1900年1月1日相隔的总天数。闰年366天,平年365天。

     

    通过运算符实现闰年判断的条件:

    (1)能被4整除且不能被100整除的年份

    (2)能被400整除的年份

    (3)两个条件只需要满足其中任意一个即可,故闰年判断的条件:

    ((i % 4 == 0)&&(i % 100 != 0))||(i % 400 == 0)

     

    实现代码:

    import java.util.Scanner;
    
    public class Calendar {
    	public static void main(String[] args){
    		//第一步:接收用户输入的年份和月份
    		 Scanner input=new Scanner(System.in);
    		 System.out.println("请输入年份");
    		 int year=input.nextInt();
    		 System.out.println("请输入月份");
    		 int month=input.nextInt();
    		 int day=0;
    		 //第二步:求输入的年份月份与1900年1月1日相隔的总天数
    		 for (int i = 1900; i < year; i++) {
    			 if ((i % 4 == 0 && i % 100 != 0)||(i % 400 == 0)) {
    				day+=366;
    			}else {
    				day+=365;
    			}
    		 }
    		 	//求相隔月份的天数
    		 for (int i = 1; i < month; i++) {
    			if (i==2) {
    				if ((year%4==0&&year%100!=0)||(year%400==0)) {
    					day+=29;
    				}else {
    					day+=28;
    				}
    			}else if (i==4||i==6||i==9||i==11) {
    				day+=30;
    			}else {
    				day+=31;
    			}
    		 }
    		 //第三步:计算上个月最后一天是星期几
    		int weeks=day%7;
    		int day2=0;
    		switch (month) {
    			case 2:
    				if (year%4==0&&year%100!=0||year%400==0) {
    					day2+=29;
    				}else {
    					day2+=28;
    				}
    			    break;
    			case 4:
    			case 6:
    			case 9:
    			case 11:
    				day2=30;
                    break;
    			default:
    				day2=31;
    			    break;
    		}
    		//第四部:打印日历
    		System.out.println("一\t二\t三\t四\t五\t六\t日");
    		for (int i = 1; i <= weeks; i++) {
    			System.out.print(" \t");
    		}
    		for (int i = 1; i <= day2; i++) {
    			System.out.print(i+"\t");
    			if ((i+weeks)%7==0) {
    				System.out.println();
    			}
    		}
    	}
    }

     

    展开全文
  • import java.util.*; public class rili { public static void main(String[] args) { Scanner n=new Scanner(System.in); int r=0,i,p=0,year,k,z=0,month,day,t,monthsum=0; //i余数。p平年数。k...
  • * 根据小时判断是否上午、中午、下午 * @param hour * @return * @author zhangsq */ public static String getDuringDay(int hour){ if (hour >= 7 && hour ) { return BasicConstants.AM; }
  • 1、编写公共方法:/*** 根据小时判断是否上午、中午、下午* @param hour* @return* @author zhangsq*/public static String getDuringDay(int hour){if (hour >= 7 && hour < 11) {return ...
  • 1.计算某一月份的最大天数Calendar time=Calendar.getInstance();time.clear();time.set(Calendar.YEAR,year); //year inttime.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月0int day=time....
  • 一、利用Calendar类实现日期星期的转换 二、选定一个参考点
  • java中判断当前日期星期几

    千次阅读 2019-02-18 11:13:24
    在券商实际开发过程中,在做定投的时候,如果选择定投周期周,那么就需要判断当前日期处于周几,如果处于周一-周五,正常扣款,如果处于星期天,延迟到下一周的交易日进行扣款。 使用java.util.Calendar进行当前...
  • 以1980年1月1日(星期二)起始日,如果计算至该日期的天数,就可以知道该日期星期几。求总天数的计算公式如下: 总天数=平年的天数累计量+闰年的天数累积量+当年的前几个月的累积天数+本月天数 求total(总天数...
  • 本文链接:https://blog.csdn.net/weixin_44100514/article/details/98030467使用Calendar类,先计算出30天后的日期然后SimpleDateFormat 计算出当前日期星期几Date date = new Date();Simpl...
  • import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author yangxin_ryan ... * 这里的目的是计算当天是本年的第周, * 并且以周五起始,至下周四作为周的维度 ...
  • 版权声明:本文博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 ...使用Calendar类,先计算出30天后的日期 然后SimpleDateFormat 计算出当前日期星期几 Date date = new Date(); ...
  • //设置星期一周开始的第一天 calendar.setFirstDayOfWeek(Calendar.MONDAY); //设置在一年中第一个星期所需最少天数 calendar.setMinimalDaysInFirstWeek(4); //获得当前的年 int weekYear = calendar.get...
  • 显示当前月的日历,如何计算某月份的天数以及一个给定日期相应的是星期几。 思路: 1.构造一个日历对象,并用当前的日期和时间初始化。 2.将date设置这个月的第一天,并得到这一天是星期几。 3.变量...
  • 要求:根据日期求天数,周,星期几思路:试试不用java封装好的方法写一个日期类,属性:年、月、日;首先判断日期是否合法,第一功能计算天数:求当月前一个月与第一月相差的天数,在加上当前月到几号的天数;第二个...
  • public class BirthdayTime {public static void main(String[] args) throws ParseException {Scanner sc = new ...System.out.println("请输入您的下一个生日日期(格式:xxxx/xx/xx): ");String s = sc.nextLine...
  • //设置星期一周开始的第一天calendar.setFirstDayOfWeek(Calendar.MONDAY);//设置在一年中第一个星期所需最少天数calendar.setMinimalDaysInFirstWeek(4);//获得当前的年int weekYear = c...
  • 第一步 先根据当前日期时间 计算出本周的开始时间与结束日期第...是根据每月有星期一来计算的…(以2019-4-29 – 2019-5-5周例,周一是4月29号 星期5与5号,周一在4月那这个周跨月,算四月的第5周)SimpleDate...
  • 克里斯汀·泽勒开发的用于计算某一天是星期几的算法,称为泽勒一致性。其公式如下(图片是从网上找的): h代表星期几(0为0星期六,1为星期日,...,6为星期五) q代表某月的第几天 m代表月份(3为3月,4为4月,.....
  • 第一步 先根据当前日期时间 计算...// 周跨月也是如此, 每个月有多少周,是根据每月有星期一来计算的…(以2019-4-29 – 2019-5-5周例,周一是4月29号 星期5与5号,周一在4月那这个周跨月,算四月的第5周) Sim...
  • 泽勒一致性是由克里斯汀-泽勒开发的用于计算某天是星期几计算公式。计算公式如下: h=(q+[26*(m+1)/10]+k+[k/4]+[j/4]+5*j)%7 其中: h是一个星期中每一天(0是星期六,1是星期天,2是星期一,3是星期二,4是...
  • 1.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。 2.计算并输出21世纪的闰年,计算程序...4.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否闰年,该月有几天,该日是星期几
  • 数据处理,需要得出日期当天的星期数,因此想到了java中的calendar函数,这函数是相当的好使啊 在说代码之前,大家看看数据的格式,好让大家明白切分规则,什么那样切字符串 这是一个csv文本,只需要在...
  • 基于JAVA日期计算器

    2020-05-10 23:43:43
    实验要求和目的: 1.理解掌握图形界面的设计 2.理解整体算法的思路,即actionPerformed()的算法 3.输入日期,完成星期几的计算,并...5.输入日期以及天数或日期,如果天数,计算日期减天数,否则计算如 期减...
  • 方便生活,跨越这个拦路虎,下面我把快速算出某天是星期几的方法介绍给大家。 一、计算公式:(日期数+月份常数)÷7=商……余数 二、判断:1、上述算式若被7整除就是星期天。若有余数时,余数...
  • 判断今天是星期几 4&gt;获取当前 年/月/周/日 5&gt;获取当月最大和最小的一天 6&gt;计算两个日期之间相差的天数 7&gt;距离当天日期 100 天的日期 8&gt;获取某一日期...
  • 计算出1900年1月1日至当前日期之间总共间隔多少天,将其除以7取余数,该结果即当月1号是星期几。提示:1900年1月1日星期一 import java.util.Scanner; public class TestShowCalendar { public static void ...

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

java计算日期为星期几

java 订阅