星期几的计算 (if语句)

public boolean chackyear(int str) {// 判断平年,闰年

boolean q = str % 4 == 0;

boolean w = str % 100 == 0;

boolean e = str % 400 == 0;

boolean r = false;

if (q) {

if (w == false || e) {

r = true;

}

}

return r;

}

public String chackday(int year, int month, int day) {

int c = 0;// 月的代码

int s = 0;// 21世纪年的代码

int b = 20;// 年代

int y3 = 0;// 年的后两位

int i = 0;// 年份数组下标i

String y = String.valueOf(year);

String y1 = y.substring(2, 4);// 提取年后两位

int y4 = Integer.parseInt(y1);// 转换年份格式

String y2 = y.substring(0, 2);// 提取年份前两位

y3 = Integer.parseInt(y2);// 转换年份前两位格式

int[] k = { 5, 3, 1, 0 };// 年份代码数组

int[] l = { 1, 3, 5, 0 };// 年份代码数组

if (y3 > b) {// 判断 :与21世纪比较

i = (y3 - b) % 4 - 1;

s = ((y4 / 4) + y4) % 7 + k[i];

} else if (y3 < b) {

i = (b - y3) % 4 - 1;

s = ((y4 / 4) + y4) % 7 + l[i];

} else {

i = 3;

s = ((y4 / 4) + y4) % 7 + l[i];

}

// r-2||+5 18 1777

//

// r+3 19 1888

// r+1 20 1999

// r 21 2010

if (chackyear(year) == false) {// 判断平年,闰年

if (month == 5) {// 月份代码

c = 0;

} else if (month == 8) {

c = 1;

} else if (month == 2 | month == 3 || month == 11) {

c = 2;

} else if (month == 6) {

c = 3;

} else if (month == 12 || month == 9) {

c = 4;

} else if (month == 4 || month == 7) {

c = 5;

} else if (month == 1 || month == 10) {

c = 6;

}

} else {

if (month == 5) {

c = 0;

} else if (month == 2 || month == 8) {

c = 1;

} else if (month == 3 || month == 11) {

c = 2;

} else if (month == 6) {

c = 3;

} else if (month == 12 || month == 9) {

c = 4;

} else if (month == 1 || month == 4 || month == 7) {

c = 5;

} else if (month == 1 || month == 10) {

c = 6;

}

}

int r = (s + c + day) % 7;// 星期计算

String result = "";// 初始化变量

switch (r) {// 判断星期几

case 0:

result = "星期日";

break;

case 1:

result = "星期一";

break;

case 2:

result = "星期二";

break;

case 3:

result = "星期三";

break;

case 4:

result = "星期四";

break;

case 5:

result = "星期五";

break;

case 6:

result = "星期六";

break;

default:

break;

}

return result;

}

时间: 2024-10-14 00:54:13

星期几的计算 (if语句)的相关文章

vertica时间计算SQL语句实例:统计一天内登录的用户

SQL语句实例: select count(id) as num from public.user where cast((CURRENT_TIMESTAMP-login_timed) day as integer )<=1; 或 select count(id) as num from public.user where cast((CURRENT_TIMESTAMP-login_timed) hour as integer )<=24; 大家可以根据表结构稍作调整后使用 vertica时间

[20191011]通过bash计算sql语句的sql_id.txt

--//当我知道如何通过bash计算sql语句的full_hash_value ,就很想通过bash编程计算sql_id.当时受限自己能力--//感觉不好实现.--//链接: http://blog.itpub.net/267265/viewspace-2142512/=> [20170724]关于sql_id那些事.txt 1.简单介绍sql_id.--//sql_id的计算是使用MD5算法进行哈希,生成一个128位的Hash Value,其中低32位作为HASH VALUE显示,SQL_ID

[20191101]通过zsh计算sql语句的sql_id.txt

1.简单介绍以及测试使用zsh遇到的问题:--//前段时间写的,链接http://blog.itpub.net/267265/viewspace-2659623/=>[20191011]通过bash计算sql语句的sql_id.txt--//bash无法直接实现各种进制的相互转化,我看了bash手册以及上网查一些资料.我发现zsh可以直接实现.--//例子如下:zsh$ echo $(( [##32]16#$v2 ))--//这样可以使用16进制转32进制.v2是16进制数值. --//很奇怪的

java实现两个日期内具有几个星期几的计算

虽然java自带的Calendar类似乎很好用,但是作为小白的我还不会用.朋友说有时需要计算任意两个日期内具有几个星期一或者星期三.问我能不能实现,我想想,能实现,可能代码不够优雅.具体代码放在下面.欢迎朋友与我分享更好的思路或工具吧~ package cn.example.mapper; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import ja

输入一个日期,判断这个日期在一年中是哪一天,是星期几,计算两个日期间的天数,使用字符串输出日期

之前写了一个博文(http://blog.csdn.net/shiwazone/article/details/45053739)是用基本函数实现的,这次使用类的设计方法,也就是面向对象的方法改写一下,并加入了日期转换成字符串的实现.这里的程序也可以解决编程珠玑习题3.4的问题. #include"calendar.h" int main() { Time t; t.initialTime(); t.Show(); t.StrShow(); Time t1; t1.initialTim

总天数以及星期几的计算算法

在写程序的过程中,需要判断两个日期是否处在一个星期之内,如果用C++类库CTime,则只能计算1970年之后的日期,之前的日期就会报错,于是研究了几个星期计算算法,改写出一个计算从1年1月1日起到输入日期之间的天数,如果他们的除数相同,则表明他们在一个星期之内(原理参见参考文章<蔡勒算法>),同时该方法也可以计算两个日期之间的天数差. 日期计算关于<1582年10月4日和1752年9月3日 >这两个日期都有特殊的历史,蔡勒公式和基姆拉尔森公式也都给出了在特殊日期前后的计算方式,如计

计算sql语句的查询时间

set statistics profile on set statistics io on set statistics time on go <这里写上你的语句...> go set statistics profile off set statistics io off set statistics time off SET STATISTICS TIME ON ...sql SET STATISTICS TIME off

随机输入日期计算星期几(1900年1月1日为基础)

已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几 代码如下(未改进),欢迎批评指正 year=int(input('year')) month=int(input('month')) day=int(input('day')) if year >=1900:#大于等于1900 ryear =1900 sum =0 while ryear < year:#1901 if ((ryear % 4 == 0) and (ryear %100 !=0))or(ryear % 400 =

Swift中的循环语句

循环语句能够使程序代码重复执行.Swift编程语言支持4种循环构造类型:while. do while.for和for in.for和while循环是在执行循环体之前测试循环条件,而do while是在执行循环体之后测试循环条件.这就意味着for和while循环可能连一次循环体都未执行,而do while将至少执行一次循环体.for in是for循环的变形,它是专门为集合遍历而设计的.一.while语句while语句是一种先判断的循环结构,格式如下:while 循环条件 {    语句组 }wh