package database;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.File;
import java.io.*;
public class pro {
String[] data=new String[5000];
int s,datanumber,number;
String ren;
String[] title=new String[5000000];
String[] week=new String[5000000];
String[] sta=new String[5000000];
int[] y1=new int[500000];
int[] m1=new int[500000];
int[] y2=new int[500000];
int[] m2=new int[500000];
int[] h1=new int[500000];
int[] mx1=new int[500000];
int[] h2=new int[500000];
int[] mx2=new int[500000];
String[] code_sta=new String[5000000];
int[] code_time=new int[5000000];
String[] code=new String[5000000];
String[] subdata=new String[50000];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
File f=new File("data");
String[] fx=f.list();
int delta=0;
int tr=1;
for(tr=1;tr<fx.length+1;tr++){
code[tr]=fx[tr-1].replace(".txt","");
db sub=new db();
sub.makedata(code[tr]);
title[tr]=sub.title;
week[tr]=sub.week;
sta[tr]=sub.sta;
ren=sub.ren;
y1[tr]=sub.y1;
m1[tr]=sub.m1;
y2[tr]=sub.y2;
m2[tr]=sub.m2;
h1[tr]=sub.h1;
mx1[tr]=sub.mx1;
h2[tr]=sub.h2;
mx2[tr]=sub.mx2;
code_sta[tr]=namex(sta[tr]);
code_time[tr]=hour(tr);
int h=0;
if(ren.equals("連続"))h=h+1;
if(title[tr].length()>0)h=h+1;
if(y2[tr]>1979)h=h+1;
int j=0;
if(y1[tr]==y2[tr])j=j+1;
if(m1[tr]==m2[tr])j=j+1;
if(j==2)h=0;
if(h==3){
delta=delta+1;
subdata[delta]=title[tr]+","+code[tr]+","+sta[tr]+","+code_sta[tr]+","+week[tr]+","+y1[tr]+","+m1[tr]+","+y2[tr]+","+m2[tr];
subdata[delta]=subdata[delta]+","+code_time[tr]+","+h1[tr]+","+mx1[tr]+","+h2[tr]+","+mx2[tr];
System.out.println(subdata[delta]);
}
}
}
int hour1(int nx){
int d1=60*(h1[nx]-12)+mx1[nx];
int d2=60*(h2[nx]-12)+mx2[nx];
int de;
double minde=9999999999.9;
int sline=0;
int half=0;
for(de=6;de<13;de++){
double dex=(d1-60*de)*(d1-60*de);
if(dex<minde)sline=de;
if(dex<minde)minde=dex;
}
for(de=6;de<13;de++){
double dex=(d1-60*de-30)*(d1-60*de-30);
if(dex<minde)half=100;
if(dex<minde)sline=de;
if(dex<minde)minde=dex;
}
int j=0;
if(sline==7)j=j+1;
if(half>60)j=j+1;
if(j==2)sline=71;
return sline;
}
int hour(int nx){
int cx=9999;
int z=0;
if(hour1(nx)==7)z=z+1;
if(hour2(nx)==71)z=z+1;
if(z==2)cx=71;
z=0;
if(hour1(nx)==71)z=z+1;
if(hour2(nx)==8)z=z+1;
if(z==2)cx=72;
z=0;
if(hour1(nx)==8)z=z+1;
if(hour2(nx)==9)z=z+1;
if(z==2)cx=8;
z=0;
if(hour1(nx)==9)z=z+1;
if(hour2(nx)==10)z=z+1;
if(z==2)cx=9;
z=0;
if(hour1(nx)==10)z=z+1;
if(hour2(nx)==11)z=z+1;
if(z==2)cx=10;
z=0;
if(hour1(nx)==7)z=z+1;
if(hour2(nx)==8)z=z+1;
if(z==2)cx=7;
return cx;
}
int hour2(int nx){
int d1=60*(h1[nx]-12)+mx1[nx];
int d2=60*(h2[nx]-12)+mx2[nx];
int de;
double minde=9999999999.9;
int sline=0;
int half=0;
for(de=6;de<13;de++){
double dex=(d2-60*de)*(d2-60*de);
if(dex<minde)sline=de;
if(dex<minde)minde=dex;
}
for(de=6;de<13;de++){
double dex=(d2-60*de-30)*(d2-60*de-30);
if(dex<minde)half=100;
if(dex<minde)sline=de;
if(dex<minde)minde=dex;
}
int j=0;
if(sline==7)j=j+1;
if(half>60)j=j+1;
if(j==2)sline=71;
return sline;
}
int check(int nx){
int ch=0;
int h=0;
if(y1[nx]==y2[nx])h=h+1;
if(m1[nx]==m2[nx])h=h+1;
if(h==2)ch=100;
return ch;
}
int num_int(String str){
int nx;
nx=0;
try{
nx=Integer.parseInt(str);
}catch (Exception e) {}
return nx;
}
String namex(String pp){
String z="その他";
if(pp.equals("NTV"))z="日本";
if(pp.equals("NHK"))z="nhk";
if(pp.equals("TBS"))z="tbs";
if(pp.equals("NET"))z="朝日";
if(pp.equals("CX"))z="フジ";
if(pp.equals("KTV"))z="フジ";
if(pp.equals("ABC"))z="朝日";
if(pp.equals("MBS"))z="tbs";
if(pp.equals("NHK GTV"))z="nhk";
if(pp.equals("YTV"))z="日本";
if(pp.equals("TX"))z="東京";
if(pp.equals("12CH"))z="東京";
if(pp.equals("EX"))z="朝日";
if(pp.equals("ANB"))z="朝日";
return z;
}
}
package database;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class db {
String[] data=new String[5000];
int s,datanumber,number;
int h1,mx1,h2,mx2;
String ren;
int y1,m1,d1,y2,m2,d2;
String week="";
String sta="";
String title="";
void makedata(String code){
readx("data/"+code+".txt");
for(s=1;s<datanumber+1;s++){
if(data[s].indexOf("◇テレビドラマデータベース◇")>-1)title=data[s];
}
title=title.replace(" - ドラマ詳細データ - ◇テレビドラマデータベース◇","");
for(s=1;s<datanumber+1;s++){
if(data[s].indexOf("キー局")>-1)sta=data[s+1];
}
for(s=1;s<datanumber+1;s++){
if(data[s].indexOf("放送曜日")>-1)week=data[s+1];
}
String time="";
for(s=1;s<datanumber+1;s++){
if(data[s].indexOf("放送時間")>-1)time=data[s+1];
}
String term="";
for(s=1;s<datanumber+1;s++){
if(data[s].indexOf("放送期間")>-1)term=data[s+1];
}
ren="";
for(s=1;s<datanumber+1;s++){
if(data[s].indexOf("連続/単発")>-1)ren=data[s+1];
}
if(time.length()>0){
String[] x=time.split("-");
String[] x1=x[0].split(":");
if(x1.length==2){
h1=num_int(x1[0]);
mx1=num_int(x1[1]);
}
if(x.length>1){
String[] x2=x[1].split(":");
if(x2.length==2){
h2=num_int(x2[0]);
mx2=num_int(x2[1]);
}
}
}
if(term.length()>0){
String[] t=term.split("~");
String t1="";
if(t.length>0)t1=t[0];
String t2="";
if(t.length==2)t2=t[1];
String[] z1= t1.split("/");
if(z1.length==3){
y1=num_int(z1[0]);
m1=num_int(z1[1]);
d1=num_int(z1[2]);
}
if(t2.length()>1){
String[] z2= t2.split("/");
y2=num_int(z2[0]);
m2=num_int(z2[1]);
d2=num_int(z2[2]);
}
}
}
int num_int(String str){
int nx;
nx=0;
try{
nx=Integer.parseInt(str);
}catch (Exception e) {}
return nx;
}
void readx(String file){
String str;
BufferedReader br;
int s;
s=0;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
while((str = br.readLine()) != null) {
s=s+1;
data[s]=str;
}
br.close();
} catch (IOException e) {System.out.println(e);}
datanumber=s;
}
}
最終更新:2017年07月24日 11:25