七行プログラミング

このエントリーをはてなブックマークに追加
初参加。カレンダ生成プログラムです。多分もっと縮められると思います。
使い方:a.exe 月 年(4桁)

#include <stdio.h>
#include <stdlib.h>
int i=0,d,y,m;void c(int s,int a){while(i<s)printf(" "),i++;for(i=1;i<=a;i++)
printf("%3d%s",i,((s+i)%7)?"":"\n");puts("");}int l(){return((y%400==0)?1:(0==y
%100)?0:(y%4==0));}int w(){return y-=m<3,(y+y/4-y/100+y/400+".#&%(#&($')%'"[m]-
34)%7;}int main(int h,char *v[]) {y=atoi(v[2]);m=atoi(v[1]);d=".&#&%&%&&%&%&"[m
]-7+((m-2)?0:l()&1);printf("%11d %4d\n Su Mo Tu We Th Fr Sa\n",m,y);c(w(),d);}