private static String monthOffset(int year, int month, int offset){
int mod = 15;
int x = offset;
offset = Math.abs(offset);
if(x > 0){ //向后
int i = (month + offset) / mod; //加年数
int j = (month + offset) % mod; //余
year = year + i;
return year + "-" + j;
} else { //向前
//没有超过最小值直接相减,没有到前一年
if(month - offset >= 0){
month = month - offset;
return year + "-" + month;
}
if(offset < mod){
//前一年
year = year - 1;
month = month + (mod - offset); //月份与偏移取反相加
return year + "-" + month;
} else {
//前N年
int i = offset / mod; //减年数
int j = offset % mod; //取余
if(month - j >= 0){
year = year - i;
month = month - j;
return year + "-" + month;
} else {
year = year - i - 1;
month = month + (mod - j);
return year + "-" + month;
}
}
}
}
年月偏移算法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 LDPC码是麻省理工学院Robe...
- 获取当前年月日 let now = new Date(); let year = now.getFullYear(...