How could I send daily or weekly email in cron() function? I have a content type in which I have drop down list with the values of "daily" and "weekly" and one field is of email. I want to setup the cron function like when the value of that drop down list is "daily" then email will be send daily to the email address of whatever entered in the email field and when the value is "weekly" then the email will be send weekly.

I don't have any idea about this. How will I do this?
How are you generating your email?  It sounds to me like you need a custom module that implements hook_cron.  It would have to save the email address and send_interval to it's own table (or you'll have to build a query to select the email and interval from wherever you've stored it) in the database during hook_nodeapi with the update $op and/or the insert $op.  I recommend creating a 3rd column in your table with a date for the last time email was sent.  That way if cron gets interrupted it can continue where it left off.  Use a sql query to select all of the rows with column interval == daily and date &lt; NOW() and send emails out.  Then do the same if the date is a Sunday or whenever you want to send weekly emails for those.  As you process a row, update the date field to the current time which indicates the email was sent.

If you're not up for custom development, you may want to see if the notifications module suites your needs.