数据处理,需要得出日期当天的星期数,因此想到了java中的calendar函数,这函数是相当的好使啊
在说代码之前,大家看看数据的格式,好让大家明白切分规则,为什么那样切字符串
这是一个csv文本,只需要在后面追加一个星期数就可以了,因此提取年月日的切分如下:
a = line.split(" ");
b = a[0].split("/");
int day = Integer.parseInt(b[0]);
int mouth = Integer.parseInt(b[1]);
int year = Integer.parseInt(b[2]);
日历函数的主要用法为如下:
Calendar calendar = Calendar.getInstance();
calendar.set(year, mouth-1, day);
int number = calendar.get(Calendar.DAY_OF_WEEK);
String [] str = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",};
先获取日历,设置日期,随后会返回一个数,根据这个数查找字符串组就可以找到对应的星期数
完整程序如下:
package com.hemin.main;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.*;
/**
*
* @author 8888
*
*/
public class TiemPro
{
public static void main(String[] args) throws IOException, Exception
{
TiemPro tp = new TiemPro();
tp.readFile();
}
public void readFile() throws Exception, IOException{
String path = "C:\\Users\\8888\\Desktop\\data.csv";
String dest = "d://haha.csv";
File file = new File(path);
FileWriter fileWriter=new FileWriter(dest, true);
if(file.isFile()&&file.exists()){
InputStreamReader iread = new InputStreamReader(new FileInputStream(path),"utf-8");
BufferedReader bufferedReader = new BufferedReader(iread);
String line = null;
String[] a ={};
String[] b ={};
while((line=bufferedReader.readLine())!=null){
a = line.split(" ");
b = a[0].split("/");
int day = Integer.parseInt(b[0]);
int mouth = Integer.parseInt(b[1]);
int year = Integer.parseInt(b[2]);
Calendar calendar = Calendar.getInstance();
calendar.set(year, mouth-1, day);
int number = calendar.get(Calendar.DAY_OF_WEEK);
String [] str = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",};
//System.out.println(str[number]);
fileWriter.write(line+","+str[number]+"\n");
}
iread.close();
fileWriter.close();
}
}
}
此程序涉及文件的读写,和日期函数的使用,适合新学者使用