- 论坛徽章:
- 0
|
try
- YEAR=2001
- seq 12 |sed "s,^,${YEAR}-," |awk '
- BEGIN {
- initWeekTable();
- }
- function initWeekTable(){
- _week[0] = "Sunday";
- _week[1] = "Monday";
- _week[2] = "Tuesday";
- _week[3] = "Wednesday";
- _week[4] = "Thursday";
- _week[5] = "Friday";
- _week[6] = "Saturday";
- }
- function isLeapYear(pYear){
- return pYear % 400 || pYear % 4 && !(pYear % 100);
- }
- function dispWeek(pWeek){
- return _week[pWeek];
- }
- # date format: 2007[-06[-20]]
- function dateToWeek(pDate, tmpArr, count, year, month, day, days){
- count = split(pDate, tmpArr, "-");
- year = tmpArr[1]+0;
- month = count > 1 ? tmpArr[2]+0 : 1;
- day = count > 2 ? tmpArr[3]+0 : 1;
- days = year-1 + int(year/4) - int(year/100) + int(year/400);
- days += 2 * (month-1) + int(month/2) + int((month-1)/8);
- if (month > 3) {
- if (!isLeapYear(year)) days--;
- else days -= 2;
- }
- return (days + day) % 7;
- }
- {
- sum[dispWeek(dateToWeek($0))]++;
- }
- END {
- for (i in sum) print i " " sum[i];
- }' |sort -n -k2 |cut -d' ' -f1
复制代码 |
|