这次是把之前学的,稍微有点难度的代码进行一个大杂烩
- 数组的排序
- 数组数据更新(删除)
- 打印梯形(自己加的)
- 输出月份
- 使用方法的调用
import java.util.Scanner;
public class test{
//mian方法进行冒泡排序
static Scanner srf = new Scanner(System.in);
public static void main(String[] args){
int[] sort = new int[7];
sort[0]=45;
sort[1]=23;
sort[2]=21;
sort[3]=15;
sort[4]=99;
sort[5]=12;
sort[6]=78;
south("排序前");
//调用函数
traverse(sort);
for(int i = 0;i<sort.length-1;i++){
for(int j = 0;j<sort.length-1;j++){
if(sort[j]>sort[j+1]){
int max = sort[j];
sort[j]=sort[j+1];
sort[j+1]=max;
}
}
}
south("排序后");
//调用函数
traverse(sort);
//删除第四个元素后面的元素依次往前走
int delnum = 4;
for(int i = delnum;i<sort.length;i++){
sort[i-1]=sort[i];
}
sort[sort.length-1]=0;
south("删除后");
//调用函数
traverse(sort);
//用for循环输出一个等腰梯形
// *****
// *******
// *********
// ***********
//先打印出左边空白处,在打印左边梯形,打印右边三角形
south("\n打印一个等腰梯形--------------------------------------");
for(int h=1;h<=4;h++){
// 打印左边空白
for(int zk =4;zk>h;zk--){
soul(" ");
}
//打印左边梯形
for(int zt = 4;zt<=h+6;zt++){
soul("*");
}
// 打印右边三角形
for(int yx = 1;yx<=h;yx++){
soul("*");
}
south("");
}
south("\n打印指定月份的日历--------------------------------------");
//获取年月
south("\n请输入年份");
int year = srf.nextInt();
south("请输入月份");
int month = srf.nextInt();
//懂的都懂
//做个判断,判断数据是否违法
if (year < 1900) {
south("时间必须大于等于1900年哦");
return;
} else if (month==0||month>12) {
south("你没事吧,没事就吃溜溜梅");
return;
}
south("---------"+year+"年"+month+"月---------\n");
south("一\t二\t三\t四\t五\t六\t日");
int total = 0;
//计算出从1900年到year需要的天数,不包含year那年的天数
for(int ye = 1900;ye < year;ye++){
//我们需要判断是闰年的情况
if((ye%4)==0 && (ye%100)!=0 ||(ye%400)==0){
total+=366;
}else {
total+=365;
}
}
//计算月份天数
for(int yu = 1;yu<month;yu++){
if(yu == 4 || yu == 6 || yu == 9 || yu == 11){
total+=30;
}else if(yu == 2){
if(pdyear(year)){
total+=29;
}else{
total+=28;
}
}else{
total+=31;
}
}
//计算month当月有多少天
//定义变量设置这个月天数
int day;
if(month == 4 || month == 6 || month == 9 || month == 11){
day=30;
}else if(month == 2){
if(pdyear(year)){
day=29;
}else{
day=28;
}
}else{
day=31;
}
//总天数去与7取余计算出需要空格多少
int kon = total%7;
//打印前面的空格对齐星期
for (int i = 1; i <=kon; i++) {
System.out.print("\t");
}
//打印出顺序的月
for (int i = 1; i <= day; i++) {
if ((i+total)%7==0) {
System.out.println(i);
}else {
System.out.print(i+"\t");
}
}
}
//遍历打印函数
public static void traverse(int[] arr){
for (int j : arr) {
System.out.print(" " + j);
}
}
//换行输出函数
public static void south(String text){
System.out.println(text);
}
//不换行输出函数
public static void soul(String text){
System.out.print(text);
}
public static boolean pdyear(int year){
return (year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0;
}
}
搞一个日期推算