计算比例
public static String get_BL_Str(int onecount,int twocount) {
String ret="";
if(onecount>0&&twocount>0)
{
if(onecount%2==0 && twocount%2==0)
{
onecount=onecount/2;
twocount=twocount/2;
return get_BL_Str(onecount,twocount);
}else if(onecount%3==0 && twocount%3==0)
{
onecount=onecount/3;
twocount=twocount/3;
return get_BL_Str(onecount,twocount);
}
else if(onecount%5==0 && twocount%5==0)
{
onecount=onecount/5;
twocount=twocount/5;
return get_BL_Str(onecount,twocount);
}else
{
ret=""+onecount+":"+twocount;
}
}else if(onecount==twocount)
{
ret="1:1";
}else if(onecount==0||twocount==0)
{
ret=""+onecount+":"+twocount;
}
return ret;
}
求率:
//求率
public static double getPercent(int a,int b){
double rate = b==0?0.0:(a+0.0)/b;
if(rate>1) { rate = 1; }
if(rate<0) { rate = 0; }
return rate;
}
保留两位小数:
//保留两位小数
public static String DecimalFormat(double d){
return df2.format(d);
}
//保留两位小数
public static String formatDouble5(double d) {
return String.format("%.2f", d);
}
将集合转Map 指定参数作为Key
public static Map<String,List<GxyItemData>> getMapData(List<GxyItemData> list){
//将集合添加至Map 指定参数作为key
Map<String,List<GxyItemData>> map = new HashMap();
map = list.stream().collect(Collectors.groupingBy(GxyItemData::getGrade,Collectors.toList()));
return map;
}
将集合中指定元素添加到数组当中
public static String[] getArrData(List<GxyItemData> list){
String[] strings = new String[list.size()];
for (int i=0;i<strings.length;i++){
strings[i]=list.get(i).getName();
}
return strings;
}
集合按照某一元素排序
//集合按照某元素进行排序
Collections.sort(depTeacherSourceList, new Comparator<GxyAutoReportDto>() {
@Override
public int compare(GxyAutoReportDto o1, GxyAutoReportDto o2) {
return o2.getTeacherScoreRate().compareTo(o1.getTeacherScoreRate());
}
});
得到日期类型的对象,切格式为yyyyMMddHHmmss
public class DateFormatDemo{
public static void main(String[] args){
String date = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new java.util.Date());
System.out.println("转换后的时间为:" + date);
}
}
时间类型得到按秒的时间戳
public static long getSecondTimestamp(Date date){
if (null == date) {
return 0;
}
String timestamp = String.valueOf(date.getTime());
int length = timestamp.length();
if (length > 3) {
long dates = Long.valueOf(timestamp.substring(0,length-3));
return dates;
} else {
return 0;
}
}
时间类型得到按毫秒的时间戳
long longs = new Date().getTime();
获取当月去除周末(周六周日)之后的天数
/**
* 获取当月去除周末(周六周日)之后的天数
* */
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
public static int dateDiff(String startDate,String endDate){
GregorianCalendar gc = new GregorianCalendar();
List<Integer> size = new ArrayList<>( );
List<Date> dates = DateUtil.queryDate( startDate , endDate );
dates.stream().forEach( d->{
gc.setTime( d );
if (gc.get( Calendar.DAY_OF_WEEK ) != Calendar.SATURDAY && gc.get( Calendar.DAY_OF_WEEK ) != Calendar.SUNDAY){
size.add( 1 );
}
} );
return size.size();
}
public static Date stringToDate(String str){
Date date = null;
try {
date = dateFormat.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public static List<Date> queryDate(String startAt, String endAt) {
List<Date> dates = new ArrayList<>();
Calendar start = Calendar.getInstance();
start.setTime(stringToDate(startAt));
Calendar end = Calendar.getInstance();
end.setTime(stringToDate(endAt));
while (start.before(end) || start.equals(end)) {
dates.add(start.getTime());
start.add(Calendar.DAY_OF_YEAR, 1);
}
return dates;
}
获取当月的第一天和最后一天
/**
* 获取当月的第一天和最后一天
* */
public static Map<String,String> staEndDate(){
Map<String,String> map = new HashMap<>();
//获取当月第一天和最后一天
Calendar cale = null;
cale = Calendar.getInstance();
// 获取当月第一天和最后一天
SimpleDateFormat formatTemp = new SimpleDateFormat("yyyy-MM-dd");
String firstday, lastday;
// 获取当前月的第一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
firstday = formatTemp.format(cale.getTime());
// 获取当前月的最后一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 0);
lastday = formatTemp.format(cale.getTime());
System.out.println("firstday:"+firstday+" lastday:"+lastday);
map.put("firstday",firstday);
map.put("lastday",lastday);
return map;
}
Map中的Value进行比较,把大的元素取出来并拼接字符后放入集合
public static void main(String[] args) {
Map<String,Double> map = new HashMap<>();
map.put("schoolChangeJobRate",Double.valueOf("93.42"));
map.put("platformChangeJobRate",Double.valueOf("91.42"));
map.put("schoolBindRate",Double.valueOf("98.86"));
map.put("platformBindRate",Double.valueOf("95.8"));
map.put("schoolSignRate",Double.valueOf("66.24"));
map.put("platformSignRate",Double.valueOf("86.62"));
map.put("schoolReportRate",Double.valueOf("29.9"));
map.put("platformReportRate",Double.valueOf("51.49"));
map.put("schoolReportReadRate",Double.valueOf("46.24"));
map.put("platformReportReadRate",Double.valueOf("31.62"));
map.put("schoolReportOntimeReadRate",Double.valueOf("59.82"));
map.put("platformReportOntimeReadRate",Double.valueOf("59.85"));
map.put("schoolPostSalary",Double.valueOf("1937"));
map.put("platformPostSalary",Double.valueOf("1306"));
conclude(map);
}
public static String conclude (Map<String,Double> map){
String changeJobRate = null;
String OnObeyRate = null;
String SignRate = null;
String ReportRate = null;
String reportReadRate = null;
String ReportOntimeReadRate = null;
String PostSalary = null;
if (map.get("schoolChangeJobRate")> map.get("platformChangeJobRate")){
changeJobRate = "稳定率";
}if (map.get("schoolBindRate")> map.get("platformBindRate")){
OnObeyRate = "绑定率";
}if (map.get("schoolSignRate")> map.get("platformSignRate")){
SignRate = "签到率";
}if (map.get("schoolReportRate")> map.get("platformReportRate")){
ReportRate = "周报完成率";
}if (map.get("schoolReportReadRate")> map.get("platformReportReadRate")){
reportReadRate = "周报批阅率";
}if (map.get("schoolReportOntimeReadRate")> map.get("platformReportOntimeReadRate")){
ReportOntimeReadRate = "周报准时批阅率";
}if (map.get("schoolPostSalary")> map.get("platformPostSalary")){
PostSalary = "平均薪水";
}
//放入到集合里面
List<String> list = new ArrayList<>();
list.add(changeJobRate);
list.add(OnObeyRate);
list.add(SignRate);
list.add(ReportRate);
list.add(reportReadRate);
list.add(ReportOntimeReadRate);
list.add(PostSalary);
String string = "";
string = list.get(0);
for (int i =1;i<= list.size();i++) {
if (i + 1 <= list.size()) {
if (list.get(i)!=null){
string = string + "、" + list.get(i);
}
}else {
break;
}
}
return string;
}
集合中某一元素累计
public static void main(String[] args) {
List<GxyAutoReportDto> list = new ArrayList<>();
GxyAutoReportDto de1 = new GxyAutoReportDto();
de1.setDepName("教师教育学院");de1.setAllTotal(526);de1.setTeacherNum(51);de1.setTeacherScoreExcellent(29);
list.add(de1);
GxyAutoReportDto de2 = new GxyAutoReportDto();
de2.setDepName("理工学院");de2.setAllTotal(526);de2.setTeacherNum(51);de2.setTeacherScoreExcellent(17);
list.add(de2);
GxyAutoReportDto de3 = new GxyAutoReportDto();
de3.setDepName("外国语学院");de3.setAllTotal(526);de3.setTeacherNum(51);de3.setTeacherScoreExcellent(18);
list.add(de3);
GxyAutoReportDto de4 = new GxyAutoReportDto();
de4.setDepName("生物与化学学院");de4.setAllTotal(526);de4.setTeacherNum(51);de4.setTeacherScoreExcellent(27);
list.add(de4);
GxyAutoReportDto de5 = new GxyAutoReportDto();
de5.setDepName("人文学院");de5.setAllTotal(526);de5.setTeacherNum(51);de5.setTeacherScoreExcellent(9);
list.add(de5);
GxyAutoReportDto de6 = new GxyAutoReportDto();
de6.setDepName("体育学院");de6.setAllTotal(526);de6.setTeacherNum(51);de6.setTeacherScoreExcellent(9);
list.add(de6);
GxyAutoReportDto de7 = new GxyAutoReportDto();
de7.setDepName("艺术学院");de7.setAllTotal(526);de7.setTeacherNum(51);de7.setTeacherScoreExcellent(24);
list.add(de7);
GxyAutoReportDto de8 = new GxyAutoReportDto();
de8.setDepName("农林学院");de8.setAllTotal(526);de8.setTeacherNum(51);de8.setTeacherScoreExcellent(11);
list.add(de8);
GxyAutoReportDto de9 = new GxyAutoReportDto();
de9.setDepName("政法学院");de9.setAllTotal(526);de9.setTeacherNum(51);de9.setTeacherScoreExcellent(7);
list.add(de9);
GxyAutoReportDto de10 = new GxyAutoReportDto();
de10.setDepName("数学与统计学院");de10.setAllTotal(526);de10.setTeacherNum(51);de10.setTeacherScoreExcellent(8);
list.add(de10);
sums(list);
}
public static Integer sums(List<GxyAutoReportDto> list){
Integer teaSum = 0;
for (int i = 0;i<list.size();i++){
if (list.get(i).getTeacherScoreExcellent() != 0){
teaSum = teaSum+Integer.valueOf(list.get(i).getTeacherScoreExcellent());
}else {continue;}
}
return teaSum;
}
将集合当中不为0的元素放入数组。 实现思路: 放入数组首先需要定义数组的长度,所以先累计出来不为0的元素有多少个,然后再去将不为0的元素放入数组
public static String[] listToArr(List<GxyAutoReportDto> list){
int sizes = 0;
for (int i =0;i<list.size();i++){
if (list.get(i).getTeacherScoreExcellent()!=0){
sizes = i+1;
}else {continue;}
}
String[] strings = new String[sizes];
for (int i = 0;i<list.size();i++){
if (list.get(i).getTeacherScoreExcellent()!=0){
strings[i] = list.get(i).getDepName();
}else {continue;}
}
return strings;
}
根据集合中的值还拼接名字, 或者根据名字拼接值,(根据值最大,取出名字,如果值一样大,那么名字根据,拼接起来)
public static String JointName(List<GxyItemData> list){
String str = "";
str = list.get(0).getName();
for (int i=0;i<list.size();i++){
if (i+1<list.size()) {
if (Double.valueOf(list.get(i).getValue3())<=Double.valueOf(list.get(i + 1).getValue3())) {
str = str+ ","+ list.get(i + 1).getName();
}else {
continue;
}
}
}
//System.out.println(str);
return str;
}