社区
Java
帖子详情
自然年怎么计算?
u010630819
2013-05-09 01:28:03
比如 2012-02-01 到 2013-01-01
天 周 月 季度 年
2011-12-31 334 48 11 4 1
2012-01-01 335 48 12 4 2
...全文
940
5
打赏
收藏
自然年怎么计算?
比如 2012-02-01 到 2013-01-01 天 周 月 季度 年 2011-12-31 334 48 11 4 1 2012-01-01 335 48 12 4 2
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
良辰美景月光杯
2013-05-09
打赏
举报
回复
这个代码可以计算两个日期之间的天数(无论是什么年都可以) public class TianShu{ /**主程序的入口,有多个调用语句用来完成各项功能 程序无论main中还是方法中,变量的代表含义都是 一致的:ksn表示“开始的年份”;ksy表示“开始 的月份”;ksr表示“开始的日份(即那一天)”; zzn表示“终止时的年份”;zzy表示“终止的月份”; zzr表示“终止的日份”。*/ public static void main(String[] args) { int ksn=1998; int ksy=4; int ksr=5; int zzn=2001; int zzy=2; int zzr=16; int ts=0; //引用方法判断日期是否合法 boolean o = heGeRiQi(ksn,ksy,ksr,zzn,zzy,zzr); boolean p = riShiFouHeGe(ksn,ksy,ksr); boolean q = riShiFouHeGe(zzn,zzy,zzr); if(o==false) { int n = 1; System.exit(n); //中止程序不再运行下面的语句 } else if(p==false||q==false) { System.out.println("输入的日份非法!"); int n = 1; System.exit(n); //中止程序不再运行下面的语句 } if(ksn==zzn){ //同一年时 if(ksy==zzy) //同一个月份的天数计算方法调用 ts = tongNianYue(ksr,zzr); else if(((ksn % 4 == 0) && (ksn % 100 != 0)) || (ksn % 400 == 0)) //判断为闰年 ts = tongRunNianBuYue(ksy,ksr,zzy,zzr); //闰年天数计算方法调用 else ts = tongPinNianBuYue(ksy,ksr,zzy,zzr); //平年天数计算方法调用 }else { //不同年的天数计算方法调用 ts = buTongNian(ksn,ksy,ksr,zzn,zzy,zzr); } System.out.print(ts); } //同年同月的计算方法tongNianYue public static int tongNianYue(int ksr,int zzr) { int ts = zzr-ksr; return ts ; } //平年的同年不同月的计算方法 public static int tongPinNianBuYue(int ksy,int ksr,int zzy,int zzr) { int[] yue=new int[] {31,28,31,30,31,30,31,31,30,31,30,31}; int ts = yue[ksy-1] - ksr + zzr; int i = ksy + 1; while(i<zzy) { ts+=yue[i-1]; i++; } return ts ; } //润年的同年不同月的计算方法 public static int tongRunNianBuYue(int ksy,int ksr,int zzy,int zzr) { int[] yue=new int[] {31,29,31,30,31,30,31,31,30,31,30,31}; int ts = yue[ksy-1] - ksr + zzr; for(int i=ksy+1;i<zzy;i++) ts+=yue[i-1]; return ts ; } /*heGeRiQi方法主要用来判断年月是否合格,即都为正数 且开始年不在终止年之后;同一年的则开始月不在终止 月之后;同年月的开始日不在终止日之后。 */ public static boolean heGeRiQi(int kn,int ky,int kr,int zn,int zy,int zr) { boolean tem=true; if((kn<=0)||(ky<=0)||(kr<=0)||(zn<=0)||(zy<=0)||(zr<=0)) { System.out.println("输入的日期非法!"); tem = false; } else if(kn>zn) { System.out.println("输入的年份非法!"); tem = false; } else if((kn==zn)&(ky>zy)|(zy>12)) { System.out.println("输入的月份非法!"); tem = false; } else if(kn==zn&ky==zy&kr>zr) { System.out.println("输入的日份非法!"); tem = false; } return tem; } //判断日份是否合格,即日份不大于所在月份的最大日数 public static boolean riShiFouHeGe(int nian,int yue,int ri) { boolean tem = true; switch(yue) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(ri>31) tem = false; break; case 4: case 6: case 9: case 11: if(ri>30) tem = false; break; case 2: if(((nian % 4 == 0) && (nian % 100 != 0)) || (nian % 400 == 0)) { if(ri>29) tem = false; }else { if(ri>28) tem = false; } break; default : } return tem; } //不同年天数计算方法buTongNian public static int buTongNian(int ksn,int ksy,int ksr,int zzn,int zzy,int zzr) { int ts0=0; //开始年与终止年之间的年份的天数和,不包括开始年与终止年 int ts1=0; //开始年所在的那一年中的天数 int ts2=0; //终止年所在的这一年中的天数 int zjs=0; //计算开始年所在的那一年的天数 if(ksy==12) ts1 = tongNianYue(ksr,31); else { if(((ksn % 4 == 0) && (ksn % 100 != 0)) || (ksn % 400 == 0)) ts1 = tongRunNianBuYue(ksy,ksr,12,31); else ts1 = tongPinNianBuYue(ksy,ksr,12,31); } //计算终止年所在的那一年的天数 if(zzy==1) ts2 = tongNianYue(1,zzr); else { if(((zzn % 4 == 0) && (zzn % 100 != 0)) || (zzn % 400 == 0)) ts2 = tongRunNianBuYue(1,1,zzy,zzr); else ts2 = tongPinNianBuYue(1,1,zzy,zzr); } //加1是因为把终止年的1月1日当作起始日期计算,即这一天不在算作一天, //而实际上1月1日还是算一天,故要加1补回来 ts2 = ts2 + 1; //计算中间年份的天数 int i = ksn +1; while(i<zzn) { if(((i % 4 == 0) && (i % 100 != 0)) || (i % 400 == 0)) zjs += 366; else zjs +=365; i++; ts0 = zjs; } //计算总天数 int ts = ts0 + ts1 + ts2; return ts; } }
shine333
2013-05-09
打赏
举报
回复
请给出周的定义,即每周的第一天是什么?
跳蚤图
2013-05-09
打赏
举报
回复
没看懂问题。。。。。
u010630819
2013-05-09
打赏
举报
回复
人呢 人呢 这么冷清
u010630819
2013-05-09
打赏
举报
回复
急,速结贴
Date-如何获取
自然
天,
自然
周,
自然
月,
自然
年
?
需要获取上count个
自然
天,
自然
周,
自然
月,
自然
年
. 当时第一反应就是有没有工具类可以直接实现这个功能. 经过一番的探索,最终发现了这个工具类:Calendar. 接下来我们就来实现下这个功能吧???? 步入正题之前我想再多...
人工智能往哪个方向发展有前途?
计算
机视觉还是
自然
语言处理?
从近两
年
人工智能方向的就业情况来看,
自然
语言处理、
计算
机视觉都是比较热门的方向,但是相关岗位的数量并不算多,这一点应该引起研究生同学的注意。首先,掌握人工智能技术未来的发展方向还是比较多的,由于人工...
计算
机科学是
自然
科学吗?
...严格地讲,“透明
计算
”不是
自然
科学。 张尧学是工程院院士,不是科学院院士。张尧学获得
自然
科学一等奖不知是何道理? 袁萌 3 月 7 日
中蜂几月份
自然
分蜂_中蜂一
年
自然
分蜂几次?
因此
自然
分蜂的次数
计算
应从造雄蜂房到蜂群分蜂为一次,实际上很多时候中蜂一次分蜂分出的并不止一群,多的时候可以达到4~5群,但这也只能算一次
自然
分蜂。二、中蜂
自然
分蜂会分几群?中蜂
自然
分蜂分几群和群势、...
天然气阶梯是按
年
还是按月_燃气阶梯价是按
自然
年
算吗
那么,燃气阶梯价是按
自然
年
算吗?一起来了解了解吧。燃气阶梯价是按
自然
年
算吗不是,它是按照抄表日来算的,对跨度十二个月的费用做结算
年
来处理。但是现在大家在办理燃气新装业务的时候,一般是以受理日其来分档...
Java
50,526
社区成员
85,605
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章