用java编程求2000年1月1日到2999年12月31日之内任意一天星期几?不用任何日期函数

求完整代码
参照点是:1999年12月31日星期五

先求天数差,按2000年1月1日的算
先求整年的天数:年份之差/4得到的整数部分就是闰年的个数) 即 Year-2000
detDay_Y=detYear/4+detyear*365-1;//整年的天数,2000不算闰年所以减去1天
detDay_M=当年已过去的整月份的天数和;//(例如给定4月则计算前三个月的,年份之差被4整除那么二月是29天)
detDay_D=给定的日期;
detDay=detDay_Y+detDay_M+detDay_D+1;//加上2000-1-1到1999-12-31的一天
然后用detDay/7,余数(7以内)是几就是星期五往后推几天
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-28
public static void main(String[] args) {
System.out.println(getDayOfWeek(1999, 12, 31));
System.out.println(getDayOfWeek(2013, 6, 28));
}

public static String getDayOfWeek(int y, int m, int d) {
{
if (m == 1)
m = 13;
if (m == 2)
m = 14;
int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
String weekstr = null;
switch (week) {
case 0:
weekstr = "星期一  ";
break;
case 1:
weekstr = "星期二  ";
break;
case 2:
weekstr = "星期三  ";
break;
case 3:
weekstr = "星期四  ";
break;
case 4:
weekstr = "星期五  ";
break;
case 5:
weekstr = "星期六  ";
break;
case 6:
weekstr = "星期日  ";
break;
}

return weekstr;
}
}

星期五  

星期五  

本回答被网友采纳

用java编程求2000年1月1日到2999年12月31日之内任意一天星期几?不用任...
detDay_D=给定的日期;detDay=detDay_Y+detDay_M+detDay_D+1;\/\/加上2000-1-1到1999-12-31的一天 然后用detDay\/7,余数(7以内)是几就是星期五往后推几天

已知2000年1月1日为星期六,编程求任意给定年元月1日的星期?(C语言...
=0);}long getDay(int y){\/\/int i,year1,year2;int i=0;long day=0;if(y>2000)\/\/输进的年大于2000年的时候for(i=2000;i<y;i++){day+=365;if(Leap(y))\/\/如果是闰年则加上一天day+=1;} elsefor(i=y;i<2000;i++){day+=365;if(Leap(y))day+=1;}return day;}void...

从2000年1月1日开始,“三天打鱼 两天晒网”。编写php程序计算任意一天是...
function getResult($day){ endtime=$day;begintime="2000-01-01";days=(strtotime($endtime)-strtotime($begintime))\/86400+1;\/\/间间隔天数 numday=$days%5;if($numday==0)$numday=5;if($numday<=3){ return "今天打鱼";}else{ return "今天晒网";} } ...

java万年历
期六,七天之后的5月8日也是星期六。在日期上,8-1=7,正是7的倍数。同样,5月15 日、5月22日和5月29日也是星期六,它们的日期和5月1日的差值分别是14、21和28,也 都是7的倍数。那么5月31日呢?31-1=30,虽然不是7的倍数,但是31除以7,余数为2, 这就是说,5月31日的星期,是在5月1日的星期之后两天...

用VC++设计一个由日期判断对应是星期几的程序
请按任意键继续. . .编者注:用来算现在真实日期的星期是没有问题的。原理是根据已知公元1年1月1日的星期数来推算。如果在你的题目中约定了某天是星期几,你要注意那天的星期是否跟真实的星期相同,如果不同,需要考虑相差几天!如果大家觉得不够过瘾,可以看看以下该公式的推导过程,让大家对历法有个更深刻的认识...

C语言程序设计;"已知2000年1月1日为星期六,请输入任一年的年份后,打印...
\/*因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了*\/ \/*weekday = week_of_newyears_day(year); 求元旦是星期几 *\/ printf("\\n\\n\\n %d年\\n",year); \/* 打印年份 *\/ for(month=1; month<=12;month=month+1) \/* 打印12个月的...

...是从2000年1月1日起之后的天数。然后输出对应的天数和星期_百度知 ...
const char *Week[]= { "星期天","星期一","星期二","星期三","星期四","星期五","星期六"};if 0 struct tm { int tm_sec; \/* seconds after the minute - [0,59] *\/ int tm_min; \/* minutes after the hour - [0,59] *\/ int tm_hour; \/* hours since midni...

编程序,使 用户任意输入一个年份以及该年的1月1日是星期几,而后任意指 ...
cout<<" "<<"星期日 星期一 星期二 星期三 星期四 星期五 星期六\\n";cout<<"---\\n";for(i=0;i<weekday;i=i+1)cout<<" ";if(month==4 || month== 6 || month==9 || month==11)len_of_month = 30;else if(month==2){ if(isleap(year))len_of_month...

怎么计算任意一年某个月的第一天是星期几
算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。以2049年10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,过程如下:蔡勒(Zeller)公式:w=y+[y\/4]+[c\/4]-2c+[26(m+1)\/10]+d-1 =49+[49\/4]+[20\/4]-2×20+[26× (10+1)\/10]+1-1 =49+[12....

...但是不知道如何计算星期几的问题,网上搜到一个基姆拉尔森公式:_百...
公历一年一月一日是星期一,算出这一天和公历一年一月一日之间的天数就可以了 还有一个算法就是,400年一个循环,也就是401年一月一日也是周一这样可以少算很多天 再就是更简单的算法就是,一年是365天,364天正好是7的倍数,也就是一年多出一天来,这样再把闰年的那一天加上就可以了,这样可以算...

相似回答