java 万年历Demo

本文介绍了一个简单的日期计算器程序,该程序能够计算指定日期对应的星期几,并生成指定年份的月历。程序使用了Java Swing进行用户界面设计,通过输入年、月、日来获取星期信息;另一个部分则采用控制台输入方式,生成整年的月历。
=========================== 1 ========================== 
import javax.swing.*; 
import java.lang.*; 


public class Wanyear 
{ 
public static void main(String[] args) 
{ 
String input=JOptionPane.showInputDialog 
("Please Enter the year"); 

int year=Integer.parseInt(input); 

String input1=JOptionPane.showInputDialog 
("Please Enter the Month"); 

int m=Integer.parseInt(input1); 


String input2=JOptionPane.showInputDialog 
("Please Enter the Day"); 

int d=Integer.parseInt(input2); 




String Nyear=Integer.toString(year); 

String Sc=Nyear.substring(0,1); 
String Sy=Nyear.substring(2,3); 

int c=Integer.parseInt(Sc); 
int y=Integer.parseInt(Sy); 

if(m<3){ 
year--; 
m+=12;} 

else 
c--; 


int w=(c/4)-(2*c)+y+(y/4)+(13*(m+1)/5)+d-1; 
int result=0; 

if(w>=0) 
result=w%7; 
else 
result=(w+700)%7; 

switch(result) 
{ 
case 0: System.out.println("SUN"); break; 
case 1: System.out.println("MON"); break; 
case 2: System.out.println("TUE"); break; 
case 3: System.out.println("WED"); break; 
case 4: System.out.println("THU"); break; 
case 5: System.out.println("FRI"); break; 
case 6: System.out.println("SAT"); break; 
} 


} 
} 
======================== 2 ===================== 
  import java.io.*; 
  class putout{ 
  public void putout(int f,int x,int y){ 
  int i; 
  int a[]= new int[40]; 
  System.out.println(" 日 一 二 三 四 五 六 "+" "+f+"月"); 
  for (i=0;i<x;i++) 
  {System.out.print(" "); } 
  for(i=x;i<x+y;i++) 
  a[i]=i-x+1; 
  for(i=x;i<x+y;i++) 
  { 
  if (i%7==0) 
  System.out.print("/n"); 
  if (a[i]<10) 
  System.out.print(" "+a[i]); 
  else 
  System.out.print(" "+a[i]); 
  } 
  System.out.println("/n"); 
  } 
  } 
  class st{ 
  public static void main(String args[])throws IOException{ 
  putout p=new putout(); 
  int year,mouth,y=1,t,i; 
  InputStreamReader ir; 
  BufferedReader in; 
  ir=new InputStreamReader(System.in); 
  in=new BufferedReader(ir); 
  System.out.println("请输入一个年份"); 
  String s=in.readLine(); 
  year=Integer.parseInt(s); 
  if((year%4==0 && year%100!=0)||(year%400==0)) 
  mouth=1; 
  else 
  mouth=0; 
  y=year; 
  for(i=1;i<year;i++) 
  {if((i%4==0 && i%100!=0)||(i%400==0)) 
  y++;} 
  y=y%7; 
  for(i=1;i<13;i++){ 
  switch(i){ 
  case 1: {p.putout(1,y,31);y=(y+31)%7;break;} 
  case 2: {p.putout(2,y,28+mouth);y=(y+28+mouth)%7;break;} 
  case 3: {p.putout(3,y,31);y=(y+31)%7;break;} 
  case 4: {p.putout(4,y,30);y=(y+30)%7;break;} 
  case 5: {p.putout(5,y,31);y=(y+31)%7;break;} 
  case 6: {p.putout(6,y,30);y=(y+30)%7;break;} 
  case 7: {p.putout(7,y,31);y=(y+31)%7;break;} 
  case 8: {p.putout(8,y,31);y=(y+31)%7;break;} 
  case 9: {p.putout(9,y,30);y=(y+30)%7;break;} 
  case 10: {p.putout(10,y,31);y=(y+31)%7;break;} 
  case 11: {p.putout(11,y,30);y=(y+30)%7;break;} 
  case 12: {p.putout(12,y,31);y=(y+31)%7;break;} 
   } 
  } 
 } 
} 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值